aboutsummaryrefslogtreecommitdiffstats
path: root/flist.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2010-06-26 11:20:16 -0700
committerWayne Davison <wayned@samba.org>2010-06-26 11:42:55 -0700
commit9dbb94a7e64b0855ce3caae1d44c1f5595adbe82 (patch)
tree52885f38e05c1457f5b019b378e941a9a88c8d3d /flist.c
parent1c9eafdda0a8512e20fce4a512e52ceb56a4b1af (diff)
downloadandroid_external_rsync-9dbb94a7e64b0855ce3caae1d44c1f5595adbe82.tar.gz
android_external_rsync-9dbb94a7e64b0855ce3caae1d44c1f5595adbe82.tar.bz2
android_external_rsync-9dbb94a7e64b0855ce3caae1d44c1f5595adbe82.zip
Older protocols should send 1-incremented dev numbers.
Diffstat (limited to 'flist.c')
-rw-r--r--flist.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/flist.c b/flist.c
index 2f94420e..4a505839 100644
--- a/flist.c
+++ b/flist.c
@@ -642,14 +642,16 @@ static void send_file_entry(int f, const char *fname, struct file_struct *file,
#ifdef SUPPORT_HARD_LINKS
if (tmp_dev != -1 && protocol_version < 30) {
+ /* Older protocols expect the dev number to be transmitted
+ * 1-incremented so that it is never zero. */
if (protocol_version < 26) {
/* 32-bit dev_t and ino_t */
- write_int(f, (int32)dev);
+ write_int(f, (int32)(dev+1));
write_int(f, (int32)tmp_ino);
} else {
/* 64-bit dev_t and ino_t */
if (!(xflags & XMIT_SAME_DEV_pre30))
- write_longint(f, dev);
+ write_longint(f, dev+1);
write_longint(f, tmp_ino);
}
}