Fixed the test to ensure that we don't send a flag-byte of 0 to the
authorWayne Davison <wayned@samba.org>
Sat, 31 Jan 2004 20:24:52 +0000 (20:24 +0000)
committerWayne Davison <wayned@samba.org>
Sat, 31 Jan 2004 20:24:52 +0000 (20:24 +0000)
receiver when transferring the file list.

flist.c

diff --git a/flist.c b/flist.c
index d6e1cf1..eaa1b2d 100644 (file)
--- a/flist.c
+++ b/flist.c
@@ -441,19 +441,19 @@ void send_file_entry(struct file_struct *file, int f, unsigned short base_flags)
        if (l2 > 255)
                flags |= XMIT_LONG_NAME;
 
-       /* We must make sure we don't send a zero flagbyte or
+       /* We must make sure we don't send a zero flag-byte or
         * the other end will terminate the flist transfer. */
-       if (flags == 0 && !S_ISDIR(mode))
+       if (!(flags & 0xFF) && !S_ISDIR(mode))
                flags |= XMIT_TOP_DIR; /* NOTE: no meaning for non-dir */
        if (protocol_version >= 28) {
-               if ((flags & 0xFF00) || flags == 0) {
+               if ((flags & 0xFF00) || !(flags & 0xFF)) {
                        flags |= XMIT_EXTENDED_FLAGS;
                        write_byte(f, flags);
                        write_byte(f, flags >> 8);
                } else
                        write_byte(f, flags);
        } else {
-               if (flags == 0)
+               if (!(flags & 0xFF))
                        flags |= XMIT_LONG_NAME;
                write_byte(f, flags);
        }