use_safe_inc_flist not set for 3.1.0 client -> 3.0.9 daemon

Per Lundqvist perlundq at gmail.com
Sun Oct 20 21:00:31 MDT 2013


Hi,

When using the latest rsync 3.1.0 client, connecting to a pre 3.1.0
(i.e. 3.0.9 and earlier, protocol version 30) server running in daemon
mode and requesting
a recursive (incremental by default) file transfer, the variable
use_safe_inc_flist is not set (affecting how I/O errors are handled
during file list generation).

so it is set for:
 3.0.9 client -> 3.0.9 daemon
 3.0.9 client -> 3.1.0 daemon
 3.1.0 client -> 3.1.0 daemon

but not for:
 3.1.0 client -> 3.0.9 daemon

In server_options() in options.c, the client does not automatically send 'f'
anymore. Unless this has been specifically disabled (?), here's a
patch to enable safe incremental file lists between a 3.1.0 client and
a pre 3.1.0 daemon (protocol version 30)

--- options.c.ORIG      2013-06-12 06:28:45.000000000 +1000
+++ options.c   2013-10-21 12:46:25.251082555 +1100
@@ -2477,6 +2477,8 @@
 #ifdef ICONV_OPTION
                argstr[x++] = 's';
 #endif
+               if (protocol_version == 30)
+                       argstr[x++] = 'f';
        }

        if (x >= (int)sizeof argstr) { /* Not possible... */

thanks,
/Per Lundqvist


More information about the rsync mailing list