The latest patches.
authorWayne Davison <wayne@opencoder.net>
Sun, 25 Sep 2022 20:22:36 +0000 (13:22 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 25 Sep 2022 20:22:36 +0000 (13:22 -0700)
26 files changed:
backup-deleted.diff
catch_crash_signals.diff
checksum-reading.diff
checksum-updating.diff
checksum-xattr.diff
clone-dest.diff
congestion.diff
date-only.diff
db.diff
detect-renamed-lax.diff
detect-renamed.diff
direct-io.diff
downdate.diff
fileflags.diff
filter-attribute-mods.diff
ignore-case.diff
kerberos.diff
link-by-hash.diff
omit-dir-changes.diff
slow-down.diff
slp.diff
soften-links.diff
source-backup.diff
source-filter_dest-filter.diff
sparse-block.diff
transliterate.diff

index e44bbefbf062cd9bc6ecb8387ea5a54e8fcb094f..edc7f49eefc3aaf006d5f759073f5346382fb057 100644 (file)
@@ -7,11 +7,11 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
-@@ -1843,7 +1843,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1846,7 +1846,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                goto notify_others;
  
        if (read_batch || whole_file) {
@@ -20,7 +20,7 @@ diff --git a/generator.c b/generator.c
                        if (!(backupptr = get_backup_name(fname)))
                                goto cleanup;
                        if (!(back_file = make_file(fname, NULL, NULL, 0, NO_FILTERS)))
-@@ -1879,7 +1879,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1882,7 +1882,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                goto notify_others;
        }
  
@@ -29,7 +29,7 @@ diff --git a/generator.c b/generator.c
                if (!(backupptr = get_backup_name(fname))) {
                        goto cleanup;
                }
-@@ -1999,7 +1999,7 @@ int atomic_create(struct file_struct *file, char *fname, const char *slnk, const
+@@ -2002,7 +2002,7 @@ int atomic_create(struct file_struct *file, char *fname, const char *slnk, const
                skip_atomic = 0;
  
        if (del_for_flag) {
index fdcf6f57f6577501842a9a3aa761fdc37bf85210..b303ee6725acc54fe35bb9351149bc2e4d5824d8 100644 (file)
@@ -25,7 +25,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                  (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/errcode.h b/errcode.h
 --- a/errcode.h
 +++ b/errcode.h
index 5248f4ef2dff422df86489d479e29a3b3243dcfe..e71c2a396274d2fa59c3f9c7cca737db9554b420 100644 (file)
@@ -16,7 +16,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
@@ -29,7 +29,7 @@ diff --git a/clientserver.c b/clientserver.c
  extern int io_timeout;
  extern int no_detach;
  extern int write_batch;
-@@ -1104,6 +1106,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -1106,6 +1108,9 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
        } else if (am_root < 0) /* Treat --fake-super from client as --super. */
                am_root = 2;
  
@@ -493,7 +493,7 @@ diff --git a/generator.c b/generator.c
                        return memcmp(sum, F_SUM(file), flist_csum_len) == 0;
                }
  
-@@ -953,7 +957,7 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
+@@ -956,7 +960,7 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
                        best_match = j;
                        match_level = 1;
                }
@@ -502,7 +502,7 @@ diff --git a/generator.c b/generator.c
                        continue;
                if (match_level == 1) {
                        best_match = j;
-@@ -1076,7 +1080,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
+@@ -1079,7 +1083,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
                        match_level = 1;
                        best_match = j;
                }
@@ -511,7 +511,7 @@ diff --git a/generator.c b/generator.c
                        continue;
                if (match_level < 2) {
                        match_level = 2;
-@@ -1212,7 +1216,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1215,7 +1219,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
         * --ignore-non-existing, daemon exclude, or mkdir failure. */
        static struct file_struct *skip_dir = NULL;
        static struct file_list *fuzzy_dirlist[MAX_BASIS_DIRS+1];
@@ -520,7 +520,7 @@ diff --git a/generator.c b/generator.c
        struct file_struct *fuzzy_file = NULL;
        int fd = -1, f_copy = -1;
        stat_x sx, real_sx;
-@@ -1329,8 +1333,9 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1332,8 +1336,9 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                                                fuzzy_dirlist[i] = NULL;
                                        }
                                }
@@ -532,7 +532,7 @@ diff --git a/generator.c b/generator.c
  #ifdef SUPPORT_ACLS
                        if (!preserve_perms)
                                dflt_perms = default_perms_for_dir(dn);
-@@ -1338,6 +1343,24 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1341,6 +1346,24 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                }
                parent_dirname = dn;
  
@@ -557,7 +557,7 @@ diff --git a/generator.c b/generator.c
                statret = link_stat(fname, &sx.st, keep_dirlinks && is_dir);
                stat_errno = errno;
        }
-@@ -1384,7 +1407,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1387,7 +1410,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                        if (INFO_GTE(SKIP, 2)) {
                                if (ftype != stype)
                                        suf = " (type change)";
@@ -566,7 +566,7 @@ diff --git a/generator.c b/generator.c
                                        suf = always_checksum ? " (sum change)" : " (file change)";
                                else if (!unchanged_attrs(fname, file, &sx))
                                        suf = " (attr change)";
-@@ -1555,7 +1578,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1558,7 +1581,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                        goto cleanup;
                }
                if (statret == 0) {
@@ -575,7 +575,7 @@ diff --git a/generator.c b/generator.c
                                /* The link is pointing to the right place. */
                                set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
                                if (itemizing)
-@@ -1624,7 +1647,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1627,7 +1650,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                if (statret == 0) {
                        if (ftype != stype)
                                statret = -1;
@@ -584,7 +584,7 @@ diff --git a/generator.c b/generator.c
                                /* The device or special file is identical. */
                                set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
                                if (itemizing)
-@@ -1749,22 +1772,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1752,22 +1775,6 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                partialptr = NULL;
  
        if (statret != 0 && fuzzy_basis) {
@@ -607,7 +607,7 @@ diff --git a/generator.c b/generator.c
                /* Sets fnamecmp_type to FNAMECMP_FUZZY or above. */
                fuzzy_file = find_fuzzy(file, fuzzy_dirlist, &fnamecmp_type);
                if (fuzzy_file) {
-@@ -1803,7 +1810,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1806,7 +1813,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                ;
        else if (fnamecmp_type >= FNAMECMP_FUZZY)
                ;
@@ -769,7 +769,7 @@ diff --git a/rsync.1.md b/rsync.1.md
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -903,6 +903,10 @@ extern int file_sum_len;
+@@ -903,6 +903,10 @@ extern int file_sum_extra_cnt;
  #define F_SUM(f) ((char*)OPT_EXTRA(f, START_BUMP(f) + HLINK_BUMP(f) \
                                    + SUM_EXTRA_CNT - 1))
  
@@ -797,7 +797,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -421,6 +421,19 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -445,6 +445,19 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      the max connections limit is not exceeded for the modules sharing the lock
      file.  The default is `/var/run/rsyncd.lock`.
  
index eee009bc01fac8625e11041f7ac327779b8a525f..2b85f4e10218aa60a544a2245831c1bf08a4a236 100644 (file)
@@ -464,7 +464,7 @@ diff --git a/generator.c b/generator.c
                        else
                                file_checksum(fn, st, sum);
                        return memcmp(sum, F_SUM(file), flist_csum_len) == 0;
-@@ -1356,7 +1357,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1359,7 +1360,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                                }
                        }
                        if (checksum_files) {
@@ -474,7 +474,7 @@ diff --git a/generator.c b/generator.c
                        }
                        need_new_dirscan = 0;
                }
-@@ -1544,6 +1546,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1547,6 +1549,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                        else
                                change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
                }
@@ -482,7 +482,7 @@ diff --git a/generator.c b/generator.c
                prior_dir_file = file;
                goto cleanup;
        }
-@@ -1816,6 +1819,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1819,6 +1822,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                        handle_partial_dir(partialptr, PDIR_DELETE);
                }
                set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT | maybe_ATTRS_ACCURATE_TIME);
@@ -491,7 +491,7 @@ diff --git a/generator.c b/generator.c
                if (itemizing)
                        itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL);
  #ifdef SUPPORT_HARD_LINKS
-@@ -2308,6 +2313,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2311,6 +2316,7 @@ void generate_files(int f_out, const char *local_name)
                                } else
                                        change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
                        }
@@ -499,7 +499,7 @@ diff --git a/generator.c b/generator.c
                }
                for (i = cur_flist->low; i <= cur_flist->high; i++) {
                        struct file_struct *file = cur_flist->sorted[i];
-@@ -2402,6 +2408,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2405,6 +2411,9 @@ void generate_files(int f_out, const char *local_name)
                        wait_for_receiver();
        }
  
@@ -630,7 +630,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -426,13 +426,15 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -450,13 +450,15 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      This parameter tells rsync to make use of any cached checksum information
      it finds in per-directory .rsyncsums files when the current transfer is
      using the `--checksum` option.  The value can be set to either "lax",
index bb6e50c49d8ecaee77f0db241787a305a3865303..09bdcc1d13728971f611267002f0e0008ef93efe 100644 (file)
@@ -8,7 +8,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 901c85cae7cfefd948bf6e986d19884bac01216f..cbc3249e5a3931d86b306a18299340bf437940bb 100644 (file)
@@ -13,7 +13,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -38,7 +38,7 @@ diff --git a/Makefile.in b/Makefile.in
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
-@@ -959,7 +959,7 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
+@@ -962,7 +962,7 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
                        best_match = j;
                        match_level = 2;
                }
@@ -47,7 +47,7 @@ diff --git a/generator.c b/generator.c
                        best_match = j;
                        match_level = 3;
                        break;
-@@ -985,9 +985,16 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
+@@ -988,9 +988,16 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
                                goto got_nothing_for_ya;
                }
  #ifdef SUPPORT_HARD_LINKS
@@ -67,7 +67,7 @@ diff --git a/generator.c b/generator.c
                        if (atimes_ndx)
                                set_file_attrs(fname, file, sxp, NULL, 0);
                        if (preserve_hard_links && F_IS_HLINKED(file))
-@@ -1101,7 +1108,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
+@@ -1104,7 +1111,7 @@ static int try_dests_non(struct file_struct *file, char *fname, int ndx,
  
        if (match_level == 3) {
  #ifdef SUPPORT_HARD_LINKS
index 72b19300f3f036a55b9dcfeacec0f891db51ec56..04ec0a8b8aa501e74afb89ea081617959d715eba 100644 (file)
@@ -27,7 +27,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/daemon-parm.txt b/daemon-parm.txt
 --- a/daemon-parm.txt
 +++ b/daemon-parm.txt
index a2578fa7ad0d4b961399f7d0c87f04de9c080672..893ae218761e87996b35d1f18db666cd27f3df76 100644 (file)
@@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
diff --git a/db.diff b/db.diff
index b8529c149569029998af71e3a045a2e22f949ba0..5c4b3576e8485d9f66342990837ed724117bc25f 100644 (file)
--- a/db.diff
+++ b/db.diff
@@ -21,7 +21,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/.gitignore b/.gitignore
 --- a/.gitignore
 +++ b/.gitignore
@@ -136,7 +136,7 @@ diff --git a/checksum.c b/checksum.c
  extern const char *checksum_choice;
  
  #define NNI_BUILTIN (1<<0)
-@@ -506,6 +507,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -503,6 +504,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
                        md5_update(&m5, (uchar *)map_ptr(buf, i, remainder), remainder);
  
                md5_result(&m5, (uchar *)sum);
@@ -145,7 +145,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          }
          case CSUM_MD4:
-@@ -528,6 +531,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -525,6 +528,8 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
                        mdfour_update(&m, (uchar *)map_ptr(buf, i, remainder), remainder);
  
                mdfour_result(&m, (uchar *)sum);
@@ -198,7 +198,7 @@ diff --git a/clientserver.c b/clientserver.c
  extern char *bind_address;
  extern char *config_file;
  extern char *logfile_format;
-@@ -880,6 +883,11 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -894,6 +897,11 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
  
        log_init(1);
  
@@ -210,7 +210,7 @@ diff --git a/clientserver.c b/clientserver.c
  #if defined HAVE_SETENV || defined HAVE_PUTENV
        if ((*lp_early_exec(module_id) || *lp_prexfer_exec(module_id)
          || *lp_postxfer_exec(module_id) || *lp_name_converter(module_id))
-@@ -1092,6 +1100,8 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
+@@ -1094,6 +1102,8 @@ static int rsync_module(int f_in, int f_out, int i, const char *addr, const char
  
        am_server = 1; /* Don't let someone try to be tricky. */
        quiet = 0;
@@ -2340,7 +2340,7 @@ diff --git a/generator.c b/generator.c
                        return memcmp(sum, F_SUM(file), flist_csum_len) == 0;
                }
  
-@@ -2270,6 +2273,13 @@ void generate_files(int f_out, const char *local_name)
+@@ -2273,6 +2276,13 @@ void generate_files(int f_out, const char *local_name)
                        : "enabled");
        }
  
@@ -2354,7 +2354,7 @@ diff --git a/generator.c b/generator.c
        dflt_perms = (ACCESSPERMS & ~orig_umask);
  
        do {
-@@ -2395,6 +2405,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2398,6 +2408,9 @@ void generate_files(int f_out, const char *local_name)
                        wait_for_receiver();
        }
  
index d9b7b358f274395118120708a6f9369e7533dd04..70422c930248f08c5be0130ff8f2b766cb542e76 100644 (file)
@@ -35,7 +35,7 @@ diff --git a/generator.c b/generator.c
                diff = u_strcmp(fmid->basename, f->basename);
                if (diff == 0) {
                        good_match = mid;
-@@ -1988,6 +1990,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1991,6 +1993,21 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                fnamecmp = partialptr;
                fnamecmp_type = FNAMECMP_PARTIAL_DIR;
                statret = 0;
index 4c7cba876d02a102b11ebd4f33c4bd1405724763..f4e66673ccf780f1c44e4948abf8bc4c19992503 100644 (file)
@@ -38,7 +38,7 @@ TODO:
   a file that can't use it, while missing out on giving it to a file
   that could use it.
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/backup.c b/backup.c
 --- a/backup.c
 +++ b/backup.c
@@ -474,7 +474,7 @@ diff --git a/generator.c b/generator.c
  static inline int mtime_differs(STRUCT_STAT *stp, struct file_struct *file)
  {
  #ifdef ST_MTIME_NSEC
-@@ -1179,6 +1320,7 @@ static void list_file_entry(struct file_struct *f)
+@@ -1182,6 +1323,7 @@ static void list_file_entry(struct file_struct *f)
        }
  }
  
@@ -482,7 +482,7 @@ diff --git a/generator.c b/generator.c
  static int phase = 0;
  static int dflt_perms;
  
-@@ -1315,7 +1457,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1318,7 +1460,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                         && do_stat(dn, &sx.st) < 0) {
                                if (dry_run)
                                        goto parent_is_dry_missing;
@@ -491,7 +491,7 @@ diff --git a/generator.c b/generator.c
                                        rsyserr(FERROR_XFER, errno,
                                                "recv_generator: mkdir %s failed",
                                                full_fname(dn));
-@@ -1468,7 +1610,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1471,7 +1613,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                }
                if (real_ret != 0 && do_mkdir(fname,file->mode|added_perms) < 0 && errno != EEXIST) {
                        if (!relative_paths || errno != ENOENT
@@ -500,7 +500,7 @@ diff --git a/generator.c b/generator.c
                         || (do_mkdir(fname, file->mode|added_perms) < 0 && errno != EEXIST)) {
                                rsyserr(FERROR_XFER, errno,
                                        "recv_generator: mkdir %s failed",
-@@ -1516,9 +1658,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1519,9 +1661,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                }
                else if (delete_during && f_out != -1 && !phase
                    && !(file->flags & FLAG_MISSING_DIR)) {
@@ -516,7 +516,7 @@ diff --git a/generator.c b/generator.c
                                change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
                }
                prior_dir_file = file;
-@@ -1786,8 +1931,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1789,8 +1934,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                        goto cleanup;
                }
  #endif
@@ -532,7 +532,7 @@ diff --git a/generator.c b/generator.c
                rsyserr(FERROR_XFER, stat_errno, "recv_generator: failed to stat %s",
                        full_fname(fname));
                goto cleanup;
-@@ -2253,6 +2404,12 @@ void generate_files(int f_out, const char *local_name)
+@@ -2256,6 +2407,12 @@ void generate_files(int f_out, const char *local_name)
        if (DEBUG_GTE(GENR, 1))
                rprintf(FINFO, "generator starting pid=%d\n", (int)getpid());
  
@@ -545,7 +545,7 @@ diff --git a/generator.c b/generator.c
        if (delete_before && !solo_file && cur_flist->used > 0)
                do_delete_pass();
        if (delete_during == 2) {
-@@ -2261,7 +2418,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2264,7 +2421,7 @@ void generate_files(int f_out, const char *local_name)
        }
        info_levels[INFO_FLIST] = info_levels[INFO_PROGRESS] = 0;
  
@@ -554,7 +554,7 @@ diff --git a/generator.c b/generator.c
                whole_file = 0;
        if (DEBUG_GTE(FLIST, 1)) {
                rprintf(FINFO, "delta-transmission %s\n",
-@@ -2297,7 +2454,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2300,7 +2457,7 @@ void generate_files(int f_out, const char *local_name)
                                                dirdev = MAKEDEV(DEV_MAJOR(devp), DEV_MINOR(devp));
                                        } else
                                                dirdev = MAKEDEV(0, 0);
@@ -563,7 +563,7 @@ diff --git a/generator.c b/generator.c
                                } else
                                        change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
                        }
-@@ -2344,7 +2501,21 @@ void generate_files(int f_out, const char *local_name)
+@@ -2347,7 +2504,21 @@ void generate_files(int f_out, const char *local_name)
        } while ((cur_flist = cur_flist->next) != NULL);
  
        if (delete_during)
index c6850d93f11696b27bcc4b3c53c47108ac8b8fb6..db91cd9029289d8c4e29e2c8ab80f29ae04c80a5 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
index 69ad45547eca6cbbcbe8523acfa6a9fa40bbceec..2f7d57b7cf01d4e003267c5cc190e22b6b3e37e1 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -19,7 +19,7 @@ diff --git a/generator.c b/generator.c
  extern int human_readable;
  extern int ignore_existing;
  extern int ignore_non_existing;
-@@ -1713,6 +1714,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1716,6 +1717,12 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                goto cleanup;
        }
  
@@ -32,7 +32,7 @@ diff --git a/generator.c b/generator.c
        fnamecmp_type = FNAMECMP_FNAME;
  
        if (statret == 0 && !(stype == FT_REG || (write_devices && stype == FT_DEVICE))) {
-@@ -2159,6 +2166,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2162,6 +2169,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
                        ignore_existing = -ignore_existing;
                        ignore_non_existing = -ignore_non_existing;
                        update_only = -update_only;
@@ -40,7 +40,7 @@ diff --git a/generator.c b/generator.c
                        always_checksum = -always_checksum;
                        size_only = -size_only;
                        append_mode = -append_mode;
-@@ -2184,6 +2192,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
+@@ -2187,6 +2195,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo)
                        ignore_existing = -ignore_existing;
                        ignore_non_existing = -ignore_non_existing;
                        update_only = -update_only;
index 43a962b7f04edff91f3d67c3a056632c6c1839eb..1e51944def18a820def5552c7bead558dab87cd5 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/compat.c b/compat.c
 --- a/compat.c
 +++ b/compat.c
@@ -241,7 +241,7 @@ diff --git a/generator.c b/generator.c
  #ifdef SUPPORT_ACLS
                if (preserve_acls && !S_ISLNK(file->mode)) {
                        if (!ACL_READY(*sxp))
-@@ -1451,6 +1462,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1454,6 +1465,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                if (!preserve_perms) { /* See comment in non-dir code below. */
                        file->mode = dest_mode(file->mode, sx.st.st_mode, dflt_perms, statret == 0);
                }
@@ -252,7 +252,7 @@ diff --git a/generator.c b/generator.c
                if (statret != 0 && basis_dir[0] != NULL) {
                        int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx, itemizing, code);
                        if (j == -2) {
-@@ -1493,10 +1508,15 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1496,10 +1511,15 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                 * readable and writable permissions during the time we are
                 * putting files within them.  This is then restored to the
                 * former permissions after the transfer is done. */
@@ -269,7 +269,7 @@ diff --git a/generator.c b/generator.c
                                rsyserr(FERROR_XFER, errno,
                                        "failed to modify permissions on %s",
                                        full_fname(fname));
-@@ -1531,6 +1551,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1534,6 +1554,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                int exists = statret == 0 && stype != FT_DIR;
                file->mode = dest_mode(file->mode, sx.st.st_mode, dflt_perms, exists);
        }
@@ -280,7 +280,7 @@ diff --git a/generator.c b/generator.c
  
  #ifdef SUPPORT_HARD_LINKS
        if (preserve_hard_links && F_HLINK_NOT_FIRST(file)
-@@ -2104,17 +2128,25 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2107,17 +2131,25 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
                        continue;
                fname = f_name(file, NULL);
                if (fix_dir_perms)
@@ -740,8 +740,8 @@ diff --git a/rsync.h b/rsync.h
 +extern int fileflags_ndx;
  extern int acls_ndx;
  extern int xattrs_ndx;
- extern int file_sum_len;
-@@ -879,6 +907,11 @@ extern int file_sum_len;
+ extern int file_sum_extra_cnt;
+@@ -879,6 +907,11 @@ extern int file_sum_extra_cnt;
  /* When the associated option is on, all entries will have these present: */
  #define F_OWNER(f) REQ_EXTRA(f, uid_ndx)->unum
  #define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum
index f44c38d11f1b41ac794c083b0c06a9270d2a24c3..8bbd37ddbf76ee0b4ff95af710437450b084c832 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure                         (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
@@ -59,7 +59,7 @@ diff --git a/exclude.c b/exclude.c
        if (ex->rflags & FILTRULE_PERDIR_MERGE)
                teardown_mergelist(ex);
        free(ex->pattern);
-@@ -1003,7 +1025,9 @@ static void report_filter_result(enum logcode code, char const *name,
+@@ -1005,7 +1027,9 @@ static void report_filter_result(enum logcode code, char const *name,
  
  /* This function is used to check if a file should be included/excluded
   * from the list of files based on its name and type etc.  The value of
@@ -70,7 +70,7 @@ diff --git a/exclude.c b/exclude.c
  int name_is_excluded(const char *fname, int name_flags, int filter_level)
  {
        if (daemon_filter_list.head && check_filter(&daemon_filter_list, FLOG, fname, name_flags) < 0) {
-@@ -1012,6 +1036,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
+@@ -1014,6 +1038,9 @@ int name_is_excluded(const char *fname, int name_flags, int filter_level)
                return 1;
        }
  
@@ -80,7 +80,7 @@ diff --git a/exclude.c b/exclude.c
        if (filter_level != ALL_FILTERS)
                return 0;
  
-@@ -1031,7 +1058,8 @@ int check_server_filter(filter_rule_list *listp, enum logcode code, const char *
+@@ -1033,7 +1060,8 @@ int check_server_filter(filter_rule_list *listp, enum logcode code, const char *
  }
  
  /* Return -1 if file "name" is defined to be excluded by the specified
@@ -90,7 +90,7 @@ diff --git a/exclude.c b/exclude.c
  int check_filter(filter_rule_list *listp, enum logcode code,
                 const char *name, int name_flags)
  {
-@@ -1054,10 +1082,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
+@@ -1056,10 +1084,12 @@ int check_filter(filter_rule_list *listp, enum logcode code,
                }
                if (rule_matches(name, ent, name_flags)) {
                        report_filter_result(code, name, ent, name_flags, listp->debug_type);
@@ -103,7 +103,7 @@ diff --git a/exclude.c b/exclude.c
        return 0;
  }
  
-@@ -1074,9 +1104,45 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
+@@ -1076,9 +1106,45 @@ static const uchar *rule_strcmp(const uchar *str, const char *rule, int rule_len
        return NULL;
  }
  
@@ -150,7 +150,7 @@ diff --git a/exclude.c b/exclude.c
  
  /* Gets the next include/exclude rule from *rulestr_ptr and advances
   * *rulestr_ptr to point beyond it.  Stores the pattern's start (within
-@@ -1091,6 +1157,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -1093,6 +1159,7 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
                                   const char **pat_ptr, unsigned int *pat_len_ptr)
  {
        const uchar *s = (const uchar *)*rulestr_ptr;
@@ -158,7 +158,7 @@ diff --git a/exclude.c b/exclude.c
        filter_rule *rule;
        unsigned int len;
  
-@@ -1109,6 +1176,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -1111,6 +1178,12 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
        /* Inherit from the template.  Don't inherit FILTRULES_SIDES; we check
         * that later. */
        rule->rflags = template->rflags & FILTRULES_FROM_CONTAINER;
@@ -171,7 +171,7 @@ diff --git a/exclude.c b/exclude.c
  
        /* Figure out what kind of a filter rule "s" is pointing at.  Note
         * that if FILTRULE_NO_PREFIXES is set, the rule is either an include
-@@ -1255,11 +1328,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
+@@ -1257,11 +1330,63 @@ static filter_rule *parse_rule_tok(const char **rulestr_ptr,
                                        goto invalid;
                                rule->rflags |= FILTRULE_EXCLUDE_SELF;
                                break;
@@ -235,7 +235,7 @@ diff --git a/exclude.c b/exclude.c
                        case 'p':
                                rule->rflags |= FILTRULE_PERISHABLE;
                                break;
-@@ -1573,6 +1698,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
+@@ -1575,6 +1700,23 @@ char *get_rule_prefix(filter_rule *rule, const char *pat, int for_xfer,
                else if (am_sender)
                        return NULL;
        }
index 3decc1b4714b6c42577b0cbdc576332e42c3b3a7..2bdade2fc5fc70a8c1e2af0692ee8a0575677850 100644 (file)
@@ -12,11 +12,11 @@ TODO:
  - Make this code handle multibyte character encodings, and honor the
    --iconv setting when converting case.
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/exclude.c b/exclude.c
 --- a/exclude.c
 +++ b/exclude.c
-@@ -963,16 +963,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
+@@ -965,16 +965,15 @@ static int rule_matches(const char *fname, filter_rule *ex, int name_flags)
                if (litmatch_array(pattern, strings, slash_handling))
                        return ret_match;
        } else if (anchored_match) {
index 0a10b4b868484b712be6e0ad973899e5c7ca59ab..7b097caad86bf639a39422b5965be24dadf8649b 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -113,10 +113,10 @@ diff --git a/configure.ac b/configure.ac
 diff --git a/daemon-parm.txt b/daemon-parm.txt
 --- a/daemon-parm.txt
 +++ b/daemon-parm.txt
-@@ -61,6 +61,7 @@ BOOL reverse_lookup          True
+@@ -60,6 +60,7 @@ BOOL read_only               True
+ BOOL  reverse_lookup          True
  BOOL  strict_modes            True
  BOOL  transfer_logging        False
- BOOL  use_chroot              True
 +BOOL  use_gssapi              False
  BOOL  write_only              False
  
index e35db62fe82ba1a079e5bbdda538c711f849aa85..2abe8a2495eb95e1bbf00d96571994b8cd21b8b7 100644 (file)
@@ -12,7 +12,7 @@ To use this patch, run these commands for a successful build:
     ./configure
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -37,7 +37,7 @@ diff --git a/checksum.c b/checksum.c
  extern const char *checksum_choice;
  
  #define NNI_BUILTIN (1<<0)
-@@ -541,7 +543,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
+@@ -538,7 +540,7 @@ void file_checksum(const char *fname, const STRUCT_STAT *st_p, char *sum)
  }
  
  static int32 sumresidue;
@@ -46,7 +46,7 @@ diff --git a/checksum.c b/checksum.c
  #ifdef SUPPORT_XXHASH
  static XXH64_state_t* xxh64_state;
  #endif
-@@ -591,6 +593,8 @@ int sum_init(struct name_num_item *nni, int seed)
+@@ -593,6 +595,8 @@ int sum_init(struct name_num_item *nni, int seed)
  #endif
          case CSUM_MD5:
                md5_begin(&ctx_md);
@@ -55,7 +55,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
                mdfour_begin(&ctx_md);
-@@ -644,6 +648,8 @@ void sum_update(const char *p, int32 len)
+@@ -646,6 +650,8 @@ void sum_update(const char *p, int32 len)
  #endif
          case CSUM_MD5:
                md5_update(&ctx_md, (uchar *)p, len);
@@ -64,7 +64,7 @@ diff --git a/checksum.c b/checksum.c
                break;
          case CSUM_MD4:
          case CSUM_MD4_OLD:
-@@ -710,6 +716,8 @@ void sum_end(char *sum)
+@@ -712,6 +718,8 @@ void sum_end(char *sum)
  #endif
          case CSUM_MD5:
                md5_result(&ctx_md, (uchar *)sum);
@@ -400,7 +400,7 @@ diff --git a/rsync.h b/rsync.h
 diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
 --- a/rsyncd.conf.5.md
 +++ b/rsyncd.conf.5.md
-@@ -356,6 +356,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
+@@ -380,6 +380,23 @@ the values of parameters.  See the GLOBAL PARAMETERS section for more details.
      is 0, which means no limit.  A negative value disables the module.  See
      also the "[lock file](#)" parameter.
  
index 3d17e82f49acf037fef25cbc4e0a14879d44ff4b..f0ff1c3028c706dbdfab9cb9c06cd341dd1015e5 100644 (file)
@@ -7,7 +7,7 @@ To use this patch, run these commands for a successful build:
     ./configure                              (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
@@ -39,7 +39,7 @@ diff --git a/generator.c b/generator.c
                        iflags |= ITEM_REPORT_GROUP;
  #ifdef SUPPORT_ACLS
                if (preserve_acls && !S_ISLNK(file->mode)) {
-@@ -1448,7 +1450,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1451,7 +1453,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
                real_ret = statret;
                if (file->flags & FLAG_DIR_CREATED)
                        statret = -1;
index 42587d488fd7efc20c6783ce02fc0bf1f2e65d11..b78982d693dacfc4a782558a44731593af545d2f 100644 (file)
@@ -14,7 +14,7 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c
index 3fee9a3f3e4f183829a6c5bac64998b3176b5992..df5dcea802672d84280a6eb0ebe3d74873edf8db 100644 (file)
--- a/slp.diff
+++ b/slp.diff
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
 TODO: the configure changes should abort if the user requests --enable-slp
 and we can't honor that request.
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -44,7 +44,7 @@ diff --git a/Makefile.in b/Makefile.in
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
-@@ -1527,6 +1527,13 @@ int daemon_main(void)
+@@ -1533,6 +1533,13 @@ int daemon_main(void)
         * address too.  In fact, why not just do getnameinfo on the
         * local address??? */
  
@@ -200,7 +200,7 @@ diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
  ## MODULE PARAMETERS
  
  After the global parameters you should define a number of modules, each module
-@@ -1176,6 +1191,7 @@ A more sophisticated example would be:
+@@ -1200,6 +1215,7 @@ A more sophisticated example would be:
  > max connections = 4
  > syslog facility = local5
  > pid file = /var/run/rsyncd.pid
index 028b46ba5ff2adb24e7c9cace07bfc48fb62aecd..cfd04a3f2a4304246ca4adbda16b593f7d23c89b 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                           (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/syscall.c b/syscall.c
 --- a/syscall.c
 +++ b/syscall.c
index 50c1d9cdcea87addc2195f9d65c20d2c06c03fef..48483a85f9800e9bdf860ddb1b43e49f64387ccb 100644 (file)
@@ -9,7 +9,7 @@ To use this patch, run these commands for a successful build:
 
 -- Matt McCutchen <hashproduct@gmail.com>
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
index a05a35b2a94dbd4018d015336bc41a6431bcc1d0..7f7bbb20c684e4233fcc51c79acd9ccb6457a02f 100644 (file)
@@ -30,7 +30,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/generator.c b/generator.c
 --- a/generator.c
 +++ b/generator.c
index 3c61d927c9ab077f32754b3ead234bc24ac9603a..e799dbbe1ac901f0eeddeff6964b2501fccae1ba 100644 (file)
@@ -18,7 +18,7 @@ To use this patch, run these commands for a successful build:
     ./configure                               (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/fileio.c b/fileio.c
 --- a/fileio.c
 +++ b/fileio.c
index f8232c4d79579f3f1531ac6061daea66cd7694d6..1e366d289ae306637c2e07ea40f4df9e9e5a0a6a 100644 (file)
@@ -10,7 +10,7 @@ To use this patch, run these commands for a successful build:
     ./configure                                 (optional if already run)
     make
 
-based-on: 8b1b81e054bdcc927ff26f20f424e034bd273175
+based-on: f9e29dfb0912f2689ad10a7ba14ebb3ed43cf153
 diff --git a/flist.c b/flist.c
 --- a/flist.c
 +++ b/flist.c