Per Lundqvist
2013-Oct-21 03:00 UTC
use_safe_inc_flist not set for 3.1.0 client -> 3.0.9 daemon
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
Wayne Davison
2013-Oct-27 16:33 UTC
use_safe_inc_flist not set for 3.1.0 client -> 3.0.9 daemon
On Sun, Oct 20, 2013 at 8:00 PM, Per Lundqvist <perlundq at gmail.com> wrote:> n server_options() in options.c, the client does not automatically send > 'f' anymore. >Yes, that appears to have been neglected in 3.1.0's logic. Note that your patch shouldn't be checking a protocol_version number there, as the real version is not yet known. Fix being committed momentarily. ..wayne.. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.samba.org/pipermail/rsync/attachments/20131027/d65d41c0/attachment.html>