Updated to latest codebase.
authorWayne Davison <wayned@samba.org>
Thu, 22 Apr 2004 16:43:46 +0000 (16:43 +0000)
committerWayne Davison <wayned@samba.org>
Thu, 22 Apr 2004 16:43:46 +0000 (16:43 +0000)
ODBC-dblog.diff
atimes.diff
chmod-option.diff
ignore-case.diff
link-by-hash.diff
perdir-exclude-from.diff
remove-sent-files.diff
time-limit.diff
write-only.diff

index 540cdde..00f334e 100644 (file)
@@ -97,7 +97,7 @@ dblog.c file has a compile problem, it's probably my fault...)
 +Defaults to True.
 --- Makefile.in        10 Feb 2004 17:06:11 -0000      1.98
 +++ Makefile.in        8 Apr 2004 05:56:31 -0000
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ ZLIBOBJ=zlib/deflate.o zlib/infblock.o z
        zlib/inflate.o zlib/inftrees.o zlib/infutil.o zlib/trees.o \
        zlib/zutil.o zlib/adler32.o
  OBJS1=rsync.o generator.o receiver.o cleanup.o sender.o exclude.o util.o \
@@ -108,7 +108,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  OBJS3=progress.o pipe.o
 --- cleanup.c  27 Jan 2004 08:14:33 -0000      1.21
 +++ cleanup.c  8 Apr 2004 05:56:31 -0000
-@@ -138,7 +138,12 @@
+@@ -138,7 +138,12 @@ void _exit_cleanup(int code, const char 
                        code = RERR_VANISHED;
        }
  
@@ -124,7 +124,7 @@ dblog.c file has a compile problem, it's probably my fault...)
                rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)\n", 
 --- clientserver.c     14 Apr 2004 23:33:34 -0000      1.121
 +++ clientserver.c     15 Apr 2004 18:51:14 -0000
-@@ -311,6 +311,9 @@
+@@ -311,6 +311,9 @@ static int rsync_module(int f_in, int f_
        exclude_path_prefix = NULL;
  
        log_init();
@@ -134,7 +134,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  
        if (use_chroot) {
                /*
-@@ -429,6 +432,9 @@
+@@ -429,6 +432,9 @@ static int rsync_module(int f_in, int f_
                        rprintf(FINFO,"rsync %s %s from %s@%s (%s)\n",
                                am_sender?"on":"to",
                                request, auth_user, host, addr);
@@ -146,7 +146,7 @@ dblog.c file has a compile problem, it's probably my fault...)
                                am_sender?"on":"to",
 --- configure.in       9 Apr 2004 18:09:16 -0000       1.190
 +++ configure.in       15 Apr 2004 18:51:14 -0000
-@@ -94,6 +94,8 @@
+@@ -94,6 +94,8 @@ AC_ARG_WITH(rsync-path,
        [  --with-rsync-path=PATH  set default --rsync-path to PATH (default: rsync)],
        [ RSYNC_PATH="$with_rsync_path" ],
        [ RSYNC_PATH="rsync" ])
@@ -155,7 +155,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  
  AC_DEFINE_UNQUOTED(RSYNC_PATH, "$RSYNC_PATH", [location of rsync on remote machine])
  
-@@ -458,6 +460,14 @@
+@@ -458,6 +460,14 @@ fi
  if test x"$with_included_popt" != x"yes"
  then
      AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes])
@@ -621,7 +621,7 @@ dblog.c file has a compile problem, it's probably my fault...)
 +);
 --- loadparm.c 4 Feb 2004 07:31:29 -0000       1.50
 +++ loadparm.c 8 Apr 2004 06:31:18 -0000
-@@ -122,6 +122,17 @@
+@@ -122,6 +122,17 @@ typedef struct
        BOOL list;
        BOOL use_chroot;
        BOOL transfer_logging;
@@ -639,7 +639,7 @@ dblog.c file has a compile problem, it's probably my fault...)
        BOOL ignore_errors;
        char *uid;
        char *gid;
-@@ -154,6 +165,17 @@
+@@ -154,6 +165,17 @@ static service sDefault =
        True,    /* list */
        True,    /* use chroot */
        False,   /* transfer logging */
@@ -657,7 +657,7 @@ dblog.c file has a compile problem, it's probably my fault...)
        False,   /* ignore errors */
        "nobody",/* uid */
  
-@@ -292,6 +314,17 @@
+@@ -292,6 +314,17 @@ static struct parm_struct parm_table[] =
    {"include",          P_STRING,  P_LOCAL,  &sDefault.include,     NULL,   0},
    {"include from",     P_STRING,  P_LOCAL,  &sDefault.include_from,NULL,   0},
    {"transfer logging", P_BOOL,    P_LOCAL,  &sDefault.transfer_logging,NULL,0},
@@ -675,7 +675,7 @@ dblog.c file has a compile problem, it's probably my fault...)
    {"ignore errors",    P_BOOL,    P_LOCAL,  &sDefault.ignore_errors,NULL,0},
    {"log format",       P_STRING,  P_LOCAL,  &sDefault.log_format,  NULL,   0},
    {"refuse options",   P_STRING,  P_LOCAL,  &sDefault.refuse_options,NULL, 0},
-@@ -359,6 +392,17 @@
+@@ -359,6 +392,17 @@ FN_LOCAL_BOOL(lp_read_only, read_only)
  FN_LOCAL_BOOL(lp_list, list)
  FN_LOCAL_BOOL(lp_use_chroot, use_chroot)
  FN_LOCAL_BOOL(lp_transfer_logging, transfer_logging)
@@ -695,7 +695,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  FN_LOCAL_STRING(lp_uid, uid)
 --- log.c      20 Jan 2004 05:15:14 -0000      1.71
 +++ log.c      8 Apr 2004 05:56:32 -0000
-@@ -75,7 +75,7 @@
+@@ -75,7 +75,7 @@ struct {
  /*
   * Map from rsync error code to name, or return NULL.
   */
@@ -706,7 +706,7 @@ dblog.c file has a compile problem, it's probably my fault...)
        for (i = 0; rerr_names[i].name; i++) {
 --- main.c     10 Feb 2004 03:54:47 -0000      1.192
 +++ main.c     8 Apr 2004 05:56:32 -0000
-@@ -120,6 +120,9 @@
+@@ -120,6 +120,9 @@ static void report(int f)
  
        if (am_daemon) {
                log_exit(0, __FILE__, __LINE__);
@@ -718,7 +718,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  
 --- proto.h    14 Apr 2004 23:33:30 -0000      1.188
 +++ proto.h    15 Apr 2004 18:51:15 -0000
-@@ -51,6 +51,12 @@
+@@ -51,6 +51,12 @@ int start_daemon(int f_in, int f_out);
  int daemon_main(void);
  void setup_protocol(int f_out,int f_in);
  int claim_connection(char *fname,int max_connections);
@@ -729,9 +729,9 @@ dblog.c file has a compile problem, it's probably my fault...)
 +void db_log_transfer(struct file_struct *file,struct stats *initial_stats,char *operation);
 +void db_log_exit(int code, const char *file, int line);
  void free_exclude_list(struct exclude_list_struct *listp);
- int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir,
-                 const char *type);
-@@ -136,6 +142,17 @@
+ int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir);
+ void add_exclude(struct exclude_list_struct *listp, const char *pattern,
+@@ -135,6 +141,17 @@ BOOL lp_read_only(int );
  BOOL lp_list(int );
  BOOL lp_use_chroot(int );
  BOOL lp_transfer_logging(int );
@@ -749,7 +749,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  BOOL lp_ignore_errors(int );
  BOOL lp_ignore_nonreadable(int );
  char *lp_uid(int );
-@@ -157,6 +174,7 @@
+@@ -156,6 +173,7 @@ int lp_max_connections(int );
  BOOL lp_load(char *pszFname, int globals_only);
  int lp_numservices(void);
  int lp_number(char *name);
@@ -759,7 +759,7 @@ dblog.c file has a compile problem, it's probably my fault...)
  void log_close(void);
 --- receiver.c 23 Mar 2004 16:50:40 -0000      1.75
 +++ receiver.c 8 Apr 2004 05:56:32 -0000
-@@ -453,7 +453,9 @@
+@@ -453,7 +453,9 @@ int recv_files(int f_in,struct file_list
                recv_ok = receive_data(f_in,mapbuf,fd2,fname,file->length);
  
                log_recv(file, &initial_stats);
@@ -772,7 +772,7 @@ dblog.c file has a compile problem, it's probably my fault...)
                        close(fd1);
 --- sender.c   17 Feb 2004 21:57:44 -0000      1.38
 +++ sender.c   8 Apr 2004 05:56:32 -0000
-@@ -283,6 +283,9 @@
+@@ -283,6 +283,9 @@ void send_files(struct file_list *flist,
                } else  {
                        match_sums(f_out, s, buf, st.st_size);
                        log_send(file, &initial_stats);
index 0f3ab28..fd0efea 100644 (file)
@@ -51,7 +51,7 @@
  }
  
  
-@@ -326,6 +327,7 @@ void send_file_entry(struct file_struct 
+@@ -323,6 +324,7 @@ void send_file_entry(struct file_struct 
  {
        unsigned short flags;
        static time_t modtime;
@@ -59,7 +59,7 @@
        static mode_t mode;
        static uint64 dev;
        static dev_t rdev;
-@@ -341,7 +343,7 @@ void send_file_entry(struct file_struct 
+@@ -338,7 +340,7 @@ void send_file_entry(struct file_struct 
  
        if (!file) {
                write_byte(f, 0);
@@ -68,7 +68,7 @@
                dev = 0, rdev = makedev(0, 0);
                rdev_major = 0;
                uid = 0, gid = 0;
-@@ -390,6 +392,12 @@ void send_file_entry(struct file_struct 
+@@ -387,6 +389,12 @@ void send_file_entry(struct file_struct 
                flags |= XMIT_SAME_TIME;
        else
                modtime = file->modtime;
@@ -81,7 +81,7 @@
  
  #if SUPPORT_HARD_LINKS
        if (file->link_u.idev) {
-@@ -445,6 +453,8 @@ void send_file_entry(struct file_struct 
+@@ -442,6 +450,8 @@ void send_file_entry(struct file_struct 
                write_int(f, modtime);
        if (!(flags & XMIT_SAME_MODE))
                write_int(f, to_wire_mode(mode));
@@ -90,7 +90,7 @@
        if (preserve_uid && !(flags & XMIT_SAME_UID)) {
                if (!numeric_ids)
                        add_uid(uid);
-@@ -518,6 +528,7 @@ void receive_file_entry(struct file_stru
+@@ -515,6 +525,7 @@ void receive_file_entry(struct file_stru
      struct file_list *flist, int f)
  {
        static time_t modtime;
@@ -98,7 +98,7 @@
        static mode_t mode;
        static uint64 dev;
        static dev_t rdev;
-@@ -534,7 +545,7 @@ void receive_file_entry(struct file_stru
+@@ -531,7 +542,7 @@ void receive_file_entry(struct file_stru
        struct file_struct *file;
  
        if (!fptr) {
                dev = 0, rdev = makedev(0, 0);
                rdev_major = 0;
                uid = 0, gid = 0;
-@@ -588,6 +599,8 @@ void receive_file_entry(struct file_stru
+@@ -585,6 +596,8 @@ void receive_file_entry(struct file_stru
                modtime = (time_t)read_int(f);
        if (!(flags & XMIT_SAME_MODE))
                mode = from_wire_mode(read_int(f));
  
        if (preserve_uid && !(flags & XMIT_SAME_UID))
                uid = (uid_t)read_int(f);
-@@ -638,6 +651,7 @@ void receive_file_entry(struct file_stru
+@@ -635,6 +648,7 @@ void receive_file_entry(struct file_stru
  
        file->flags = flags & XMIT_TOP_DIR ? FLAG_TOP_DIR : 0;
        file->modtime = modtime;
        file->length = file_length;
        file->mode = mode;
        file->uid = uid;
-@@ -852,6 +866,7 @@ skip_excludes:
+@@ -849,6 +863,7 @@ skip_excludes:
  
        file->flags = flags;
        file->modtime = st.st_mtime;
        if (recurse)
 --- proto.h    14 Apr 2004 23:33:30 -0000      1.188
 +++ proto.h    20 Apr 2004 23:44:17 -0000
-@@ -243,7 +243,7 @@ int fd_pair(int fd[2]);
+@@ -242,7 +242,7 @@ int fd_pair(int fd[2]);
  void print_child_argv(char **cmd);
  void out_of_memory(char *str);
  void overflow(char *str);
  int create_directory_path(char *fname, int base_umask);
  int copy_file(char *source, char *dest, mode_t mode);
  int robust_unlink(char *fname);
-@@ -267,7 +267,7 @@ int u_strcmp(const char *cs1, const char
+@@ -266,7 +266,7 @@ int u_strcmp(const char *cs1, const char
  int unsafe_symlink(const char *dest, const char *src);
  char *timestring(time_t t);
  int msleep(int t);
                t[0].tv_usec = 0;
                t[1].tv_sec = modtime;
                t[1].tv_usec = 0;
-@@ -1052,8 +1060,8 @@ int msleep(int t)
+@@ -1051,8 +1059,8 @@ int msleep(int t)
  
  
  /**
   * --modify-window).
   *
   * @retval 0 if the times should be treated as the same
-@@ -1062,7 +1070,7 @@ int msleep(int t)
+@@ -1061,7 +1069,7 @@ int msleep(int t)
   *
   * @retval -1 if the 2nd is later
   **/
index a9bc07e..c2aaeb9 100644 (file)
  extern struct exclude_list_struct exclude_list;
  extern struct exclude_list_struct server_exclude_list;
  extern struct exclude_list_struct local_exclude_list;
-@@ -853,7 +856,10 @@ skip_excludes:
+@@ -850,7 +853,10 @@ skip_excludes:
        file->flags = flags;
        file->modtime = st.st_mtime;
        file->length = st.st_size;
index 8b1286c..2c7660c 100644 (file)
@@ -74,7 +74,7 @@ NOTE: patch updated for latest CVS source by Wayne Davison, but UNTESTED!
                args[ac++] = "--partial";
 --- util.c     14 Apr 2004 23:33:34 -0000      1.135
 +++ util.c     15 Apr 2004 19:16:00 -0000
-@@ -925,6 +925,19 @@ int u_strcmp(const char *cs1, const char
+@@ -924,6 +924,19 @@ int u_strcmp(const char *cs1, const char
  {
        const uchar *s1 = (const uchar *)cs1;
        const uchar *s2 = (const uchar *)cs2;
index da8c29a..1dec7d9 100644 (file)
@@ -470,7 +470,7 @@ Patch Summary:
        if (files_from && (!am_sender || remote_filesfrom_file)) {
 --- proto.h    14 Apr 2004 23:33:30 -0000      1.188
 +++ proto.h    15 Apr 2004 19:19:00 -0000
-@@ -92,6 +92,12 @@ char *f_name(struct file_struct *f);
+@@ -91,6 +91,12 @@ char *f_name(struct file_struct *f);
  void write_sum_head(int f, struct sum_struct *sum);
  void recv_generator(char *fname, struct file_struct *file, int i, int f_out);
  void generate_files(int f, struct file_list *flist, char *local_name);
@@ -612,7 +612,7 @@ Patch Summary:
                    ret == -2 ? "copy" : "rename",
 --- rsync.h    14 Apr 2004 23:33:37 -0000      1.196
 +++ rsync.h    15 Apr 2004 19:19:00 -0000
-@@ -517,6 +517,14 @@ struct stats {
+@@ -518,6 +518,14 @@ struct stats {
        int current_file_index;
  };
  
index c89b959..5272d74 100644 (file)
@@ -1,6 +1,6 @@
---- exclude.c  17 Apr 2004 17:55:45 -0000      1.68
-+++ exclude.c  17 Apr 2004 18:13:35 -0000
-@@ -27,6 +27,7 @@
+--- exclude.c  22 Apr 2004 09:58:15 -0000      1.70
++++ exclude.c  22 Apr 2004 10:32:52 -0000
+@@ -27,15 +27,17 @@
  #include "rsync.h"
  
  extern int verbose;
@@ -8,14 +8,19 @@
  extern int eol_nulls;
  extern int list_only;
  extern int recurse;
-@@ -34,6 +35,7 @@ extern int recurse;
  extern char curr_dir[];
  
- struct exclude_list_struct exclude_list;
-+struct exclude_list_struct perdir_exclude_list;
- struct exclude_list_struct local_exclude_list;
- struct exclude_list_struct server_exclude_list;
+-struct exclude_list_struct exclude_list = { 0, 0, "" };
+-struct exclude_list_struct local_exclude_list = { 0, 0, "local-cvsignore " };
+-struct exclude_list_struct server_exclude_list = { 0, 0, "server " };
++struct exclude_list_struct exclude_list = { 0, 0, 0, "" };
++struct exclude_list_struct perdir_exclude_list = { 0, 0, 0, "perdir " };
++struct exclude_list_struct local_exclude_list = { 0, 0, 0, "local-cvsignore " };
++struct exclude_list_struct server_exclude_list = { 0, 0, 0, "server " };
  char *exclude_path_prefix = NULL;
+ /** Build an exclude structure given a exclude pattern */
 @@ -85,6 +87,8 @@ static void make_exclude(struct exclude_
        for (cp = ret->pattern; (cp = strchr(cp, '/')) != NULL; cp++)
                ret->slash_cnt++;
@@ -25,9 +30,9 @@
        if (!listp->tail)
                listp->head = listp->tail = ret;
        else {
-@@ -106,6 +110,13 @@ void free_exclude_list(struct exclude_li
-       if (verbose > 2)
-               rprintf(FINFO, "[%s] clearing exclude list\n", who_am_i());
+@@ -108,12 +112,26 @@ void free_exclude_list(struct exclude_li
+                       who_am_i(), listp->debug_type);
+       }
  
 +      if (listp->extra) {
 +              if (listp->tail)
        for (ent = listp->head; ent; ent = next) {
                next = ent->next;
                free_exclude(ent);
-@@ -114,6 +125,13 @@ void free_exclude_list(struct exclude_li
-       memset(listp, 0, sizeof listp[0]);
- }
+       }
  
+-      listp->head = listp->tail = NULL;
++      clear_exclude_list(listp, NULL);
++}
++
 +void clear_exclude_list(struct exclude_list_struct *listp,
 +                      struct exclude_struct *extra)
 +{
 +      listp->head = listp->extra = extra;
 +      listp->tail = NULL;
-+}
-+
+ }
  static int check_one_exclude(char *name, struct exclude_struct *ex,
-                              int name_is_dir)
- {
-@@ -213,21 +231,24 @@ static void report_exclude_result(char c
+@@ -215,21 +233,25 @@ static void report_exclude_result(char c
  
  /*
   * Return true if file NAME is defined to be excluded by the specified
@@ -61,9 +66,9 @@
 + * exclude list.  Returns -1 for exclude, 0 for normal include, or 1
 + * for super include.
   */
- int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir,
--                const char *type)
-+                const char *type, int current_exclusion)
+-int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir)
++int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir,
++                int current_exclusion)
  {
        struct exclude_struct *ent;
  
@@ -71,7 +76,8 @@
 +              if (current_exclusion < 0 && ent->include < 2)
 +                      continue;
                if (check_one_exclude(name, ent, name_is_dir)) {
-                       report_exclude_result(name, ent, name_is_dir, type);
+                       report_exclude_result(name, ent, name_is_dir,
+                                             listp->debug_type);
 -                      return !ent->include;
 +                      return ent->include - 1;
                }
@@ -82,7 +88,7 @@
  }
  
  
-@@ -253,10 +274,10 @@ static const char *get_exclude_tok(const
+@@ -255,10 +277,10 @@ static const char *get_exclude_tok(const
                p = (const char *)s;
        }
  
                s += 2;
        } else
                *incl_ptr = xflags & XFLG_DEF_INCLUDE;
-@@ -387,8 +408,12 @@ void send_exclude_list(int f)
+@@ -390,8 +412,12 @@ void send_exclude_list(int f)
  
                if (ent->include) {
                        write_int(f, l + 2);
                        write_int(f, l + 2);
                        write_buf(f, "- ", 2);
                } else
---- flist.c    17 Apr 2004 17:14:12 -0000      1.214
-+++ flist.c    17 Apr 2004 18:13:36 -0000
+--- flist.c    22 Apr 2004 09:58:18 -0000      1.215
++++ flist.c    22 Apr 2004 10:32:52 -0000
 @@ -40,6 +40,7 @@ extern int ignore_errors;
  extern int numeric_ids;
  
  extern struct exclude_list_struct local_exclude_list;
  
  int io_error;
-@@ -211,6 +213,12 @@ int link_stat(const char *path, STRUCT_S
+@@ -211,6 +213,10 @@ int link_stat(const char *path, STRUCT_S
   */
  static int check_exclude_file(char *fname, int is_dir, int exclude_level)
  {
 +      static struct exclude_list_struct *elist[] = {
 +          &exclude_list, &perdir_exclude_list, &local_exclude_list, NULL };
-+      static char *edesc[] = {
-+          "pattern", "perdir-exclude", "local-ignore" };
 +      int i, rc;
 +
  #if 0 /* This currently never happens, so avoid a useless compare. */
        if (exclude_level == NO_EXCLUDES)
                return 0;
-@@ -228,18 +236,18 @@ static int check_exclude_file(char *fnam
+@@ -227,16 +233,18 @@ static int check_exclude_file(char *fnam
+               }
        }
        if (server_exclude_list.head
-        && check_exclude(&server_exclude_list, fname, is_dir,
--                        "server pattern"))
-+                        "server pattern", 0) < 0)
+-       && check_exclude(&server_exclude_list, fname, is_dir))
++       && check_exclude(&server_exclude_list, fname, is_dir, 0) < 0)
                return 1;
        if (exclude_level != ALL_EXCLUDES)
                return 0;
--      if (exclude_list.head
--          && check_exclude(&exclude_list, fname, is_dir, "pattern"))
+-      if (exclude_list.head && check_exclude(&exclude_list, fname, is_dir))
 -              return 1;
 -      if (local_exclude_list.head
--          && check_exclude(&local_exclude_list, fname, is_dir,
--                           "local-cvsignore"))
+-          && check_exclude(&local_exclude_list, fname, is_dir))
 -              return 1;
 -      return 0;
 +      for (i = 0, rc = 0; elist[i]; i++) {
 +              if (!elist[i]->head)
 +                      continue;
-+              rc = check_exclude(elist[i], fname, is_dir, edesc[i], rc);
++              rc = check_exclude(elist[i], fname, is_dir, rc);
 +              if (rc > 0)
 +                      return 0;
 +      }
  }
  
  /* used by the one_file_system code */
-@@ -947,8 +955,12 @@ void send_file_name(int f, struct file_l
+@@ -944,8 +952,12 @@ void send_file_name(int f, struct file_l
        if (recursive && S_ISDIR(file->mode)
            && !(file->flags & FLAG_MOUNT_POINT)) {
                struct exclude_list_struct last_list = local_exclude_list;
--              memset(&local_exclude_list, 0, sizeof local_exclude_list);
+-              local_exclude_list.head = local_exclude_list.tail = NULL;
 +              struct exclude_list_struct sub_list = perdir_exclude_list;
 +              clear_exclude_list(&local_exclude_list, NULL);
 +              clear_exclude_list(&perdir_exclude_list, sub_list.head);
                free_exclude_list(&local_exclude_list);
                local_exclude_list = last_list;
        }
-@@ -994,6 +1006,18 @@ static void send_directory(int f, struct
+@@ -991,6 +1003,18 @@ static void send_directory(int f, struct
                        io_error |= IOERR_GENERAL;
                        rprintf(FINFO,
                                "cannot cvs-exclude in long-named directory %s\n",
                }
        }
 --- options.c  17 Apr 2004 17:07:23 -0000      1.147
-+++ options.c  17 Apr 2004 18:13:36 -0000
++++ options.c  22 Apr 2004 10:32:53 -0000
 @@ -70,6 +70,7 @@ int am_server = 0;
  int am_sender = 0;
  int am_generator = 0;
    {"update",          'u', POPT_ARG_NONE,   &update_only, 0, 0, 0 },
    {"links",           'l', POPT_ARG_NONE,   &preserve_links, 0, 0, 0 },
    {"copy-links",      'L', POPT_ARG_NONE,   &copy_links, 0, 0, 0 },
---- proto.h    14 Apr 2004 23:33:30 -0000      1.188
-+++ proto.h    17 Apr 2004 18:13:36 -0000
-@@ -52,8 +52,10 @@ int daemon_main(void);
+--- proto.h    22 Apr 2004 09:58:09 -0000      1.189
++++ proto.h    22 Apr 2004 10:32:53 -0000
+@@ -52,7 +52,10 @@ int daemon_main(void);
  void setup_protocol(int f_out,int f_in);
  int claim_connection(char *fname,int max_connections);
  void free_exclude_list(struct exclude_list_struct *listp);
+-int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir);
 +void clear_exclude_list(struct exclude_list_struct *listp,
 +                      struct exclude_struct *extra);
- int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir,
--                const char *type);
-+                const char *type, int current_exclusion);
++int check_exclude(struct exclude_list_struct *listp, char *name, int name_is_dir,
++                int current_exclusion);
  void add_exclude(struct exclude_list_struct *listp, const char *pattern,
                 int xflags);
  void add_exclude_file(struct exclude_list_struct *listp, const char *fname,
---- rsync.h    17 Apr 2004 17:14:16 -0000      1.197
-+++ rsync.h    17 Apr 2004 18:13:36 -0000
+--- rsync.h    22 Apr 2004 09:58:24 -0000      1.198
++++ rsync.h    22 Apr 2004 10:32:53 -0000
 @@ -502,6 +502,7 @@ struct exclude_struct {
  struct exclude_list_struct {
        struct exclude_struct *head;
        struct exclude_struct *tail;
 +      struct exclude_struct *extra;
+       char *debug_type;
  };
  
- struct stats {
---- rsync.yo   17 Apr 2004 18:12:33 -0000      1.158
-+++ rsync.yo   17 Apr 2004 18:13:37 -0000
+--- rsync.yo   17 Apr 2004 18:40:16 -0000      1.159
++++ rsync.yo   22 Apr 2004 10:32:54 -0000
 @@ -331,6 +331,7 @@ verb(
       --exclude-from=FILE     exclude patterns listed in FILE
       --include=PATTERN       don't exclude files matching PATTERN
  
    it() if the pattern is a single exclamation mark ! then the current
    include/exclude list is reset, removing all previously defined patterns.
---- util.c     17 Apr 2004 17:06:03 -0000      1.136
-+++ util.c     17 Apr 2004 18:13:37 -0000
-@@ -477,7 +477,7 @@ static int exclude_server_path(char *arg
+--- t_stub.c   22 Apr 2004 09:58:11 -0000      1.7
++++ t_stub.c   22 Apr 2004 10:32:54 -0000
+@@ -46,7 +46,7 @@ struct exclude_list_struct server_exclud
+ }
+  int check_exclude(UNUSED(struct exclude_list_struct *listp), UNUSED(char *name),
+-                 UNUSED(int name_is_dir))
++                 UNUSED(int name_is_dir), UNUSED(int current_exclusion))
+ {
+       /* This function doesn't really get called in this test context, so
+        * just return 0. */
+--- util.c     22 Apr 2004 09:58:21 -0000      1.137
++++ util.c     22 Apr 2004 10:32:54 -0000
+@@ -476,7 +476,7 @@ static int exclude_server_path(char *arg
+       if (server_exclude_list.head) {
                for (s = arg; (s = strchr(s, '/')) != NULL; ) {
                        *s = '\0';
-                       if (check_exclude(&server_exclude_list, arg, 1,
--                          "server pattern")) {
-+                                        "server pattern", 0) < 0) {
+-                      if (check_exclude(&server_exclude_list, arg, 1)) {
++                      if (check_exclude(&server_exclude_list, arg, 1, 0) < 0) {
                                /* We must leave arg truncated! */
                                return 1;
                        }
index 4ff9d65..38f8ce3 100644 (file)
        return;
 --- proto.h    14 Apr 2004 23:33:30 -0000      1.188
 +++ proto.h    15 Apr 2004 19:11:00 -0000
-@@ -198,6 +198,7 @@ void sig_int(void);
+@@ -197,6 +197,7 @@ void sig_int(void);
  void finish_transfer(char *fname, char *fnametmp, struct file_struct *file);
  const char *who_am_i(void);
  void read_sum_head(int f, struct sum_struct *sum);
index e0806d2..693fc69 100644 (file)
@@ -1,6 +1,6 @@
 --- io.c       2004-01-16 11:31:47.000000000 -0500
 +++ io.c       2004-04-19 16:07:57.000000000 -0400
-@@ -47,6 +47,7 @@
+@@ -47,6 +47,7 @@ static time_t last_io;
  static int no_flush;
  
  extern int bwlimit;
@@ -8,7 +8,7 @@
  extern int verbose;
  extern int io_timeout;
  extern int am_server;
-@@ -759,6 +760,26 @@
+@@ -759,6 +760,26 @@ static void sleep_for_bwlimit(int bytes_
        select(0, NULL, NULL, NULL, &tv);
  }
  
@@ -35,7 +35,7 @@
  
  /**
   * Write len bytes to the file descriptor @p fd.
-@@ -837,6 +858,11 @@
+@@ -837,6 +858,11 @@ static void writefd_unbuffered(int fd,ch
                        }
  
                        sleep_for_bwlimit(ret);
@@ -49,7 +49,7 @@
  
 --- options.c  2004-04-17 13:07:23.000000000 -0400
 +++ options.c  2004-04-19 16:07:57.000000000 -0400
-@@ -83,6 +83,7 @@
+@@ -83,6 +83,7 @@ int safe_symlinks = 0;
  int copy_unsafe_links = 0;
  int size_only = 0;
  int bwlimit = 0;
@@ -57,7 +57,7 @@
  int delete_after = 0;
  int only_existing = 0;
  int opt_ignore_existing = 0;
-@@ -288,6 +289,7 @@
+@@ -288,6 +289,7 @@ void usage(enum logcode F)
    rprintf(F,"     --log-format=FORMAT     log file transfers using specified format\n");
    rprintf(F,"     --password-file=FILE    get password from FILE\n");
    rprintf(F,"     --bwlimit=KBPS          limit I/O bandwidth, KBytes per second\n");
@@ -65,7 +65,7 @@
    rprintf(F,"     --write-batch=PREFIX    write batch fileset starting with PREFIX\n");
    rprintf(F,"     --read-batch=PREFIX     read batch fileset starting with PREFIX\n");
    rprintf(F," -h, --help                  show this help screen\n");
-@@ -377,6 +379,7 @@
+@@ -377,6 +379,7 @@ static struct poptOption long_options[] 
    {"port",             0,  POPT_ARG_INT,    &rsync_port, 0, 0, 0 },
    {"log-format",       0,  POPT_ARG_STRING, &log_format, 0, 0, 0 },
    {"bwlimit",          0,  POPT_ARG_INT,    &bwlimit, 0, 0, 0 },
@@ -73,7 +73,7 @@
    {"address",          0,  POPT_ARG_STRING, &bind_address, 0, 0, 0 },
    {"backup-dir",       0,  POPT_ARG_STRING, &backup_dir, 0, 0, 0 },
    {"hard-links",      'H', POPT_ARG_NONE,   &preserve_hard_links, 0, 0, 0 },
-@@ -881,6 +884,12 @@
+@@ -881,6 +884,12 @@ void server_options(char **args,int *arg
  
        if (bwlimit) {
                if (asprintf(&arg, "--bwlimit=%d", bwlimit) < 0)
@@ -88,7 +88,7 @@
        }
 --- proto.h    2004-04-14 19:33:30.000000000 -0400
 +++ proto.h    2004-04-19 16:07:57.000000000 -0400
-@@ -267,6 +267,7 @@
+@@ -266,6 +266,7 @@ int u_strcmp(const char *cs1, const char
  int unsafe_symlink(const char *dest, const char *src);
  char *timestring(time_t t);
  int msleep(int t);
@@ -98,7 +98,7 @@
  void *_new_array(unsigned int size, unsigned long num);
 --- rsync.yo   17 Apr 2004 18:40:16 -0000      1.159
 +++ rsync.yo   19 Apr 2004 20:50:45 -0000
-@@ -346,6 +346,7 @@
+@@ -346,6 +346,7 @@ verb(
       --log-format=FORMAT     log file transfers using specified format
       --password-file=FILE    get password from FILE
       --bwlimit=KBPS          limit I/O bandwidth, KBytes per second
       --write-batch=PREFIX    write batch fileset starting with PREFIX
       --read-batch=PREFIX     read batch fileset starting with PREFIX
   -h, --help                  show this help screen
-@@ -880,6 +881,10 @@
+@@ -880,6 +881,10 @@ of rsync transfers, blocks of data are s
  transfer was too fast, it will wait before sending the next data block. The
  result is an average transfer rate equaling the specified limit. A value
  of zero specifies no limit.
  transferred as a batch update. Each filename in the set starts with
 --- util.c     2004-04-17 13:06:03.000000000 -0400
 +++ util.c     2004-04-19 16:07:57.000000000 -0400
-@@ -1050,6 +1050,21 @@
+@@ -1049,6 +1049,21 @@ int msleep(int t)
        return True;
  }
  
index 078c90b..c7483cc 100644 (file)
@@ -63,7 +63,7 @@ J
                        full_fname(dir), strerror(errno));
 --- proto.h    14 Apr 2004 23:33:30 -0000      1.188
 +++ proto.h    15 Apr 2004 19:29:43 -0000
-@@ -133,6 +133,7 @@ char *lp_comment(int );
+@@ -132,6 +132,7 @@ char *lp_comment(int );
  char *lp_path(int );
  char *lp_lock_file(int );
  BOOL lp_read_only(int );