Made hard-link sending compatible with pre-28 protocols again.
authorWayne Davison <wayned@samba.org>
Tue, 3 Feb 2004 04:21:15 +0000 (04:21 +0000)
committerWayne Davison <wayned@samba.org>
Tue, 3 Feb 2004 04:21:15 +0000 (04:21 +0000)
flist.c

diff --git a/flist.c b/flist.c
index a9bfb55..f9c0f6e 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -808,18 +808,22 @@ struct file_struct *make_file(char *fname, int exclude_level)
        linkname_len = 0;
 #endif
 
-       idev_len = 0;
 #if SUPPORT_HARD_LINKS
-       if (preserve_hard_links && st.st_nlink > 1) {
+       if (preserve_hard_links) {
                if (protocol_version < 28) {
                        if (S_ISREG(st.st_mode))
                                idev_len = sizeof (struct idev);
+                       else
+                               idev_len = 0;
                } else {
-                       if (!S_ISDIR(st.st_mode))
+                       if (!S_ISDIR(st.st_mode) && st.st_nlink > 1)
                                idev_len = sizeof (struct idev);
+                       else
+                               idev_len = 0;
                }
-       }
+       } else
 #endif
+               idev_len = 0;
 
        sum_len = always_checksum && S_ISREG(st.st_mode) ? MD4_SUM_LENGTH : 0;
        file_struct_len = idev_len? sizeof file[0] : min_file_struct_len;