Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
306ffb8
)
One more improvement to the 0-flag-byte avoidance algorithm.
author
Wayne Davison
<wayned@samba.org>
Sat, 31 Jan 2004 22:40:55 +0000
(22:40 +0000)
committer
Wayne Davison
<wayned@samba.org>
Sat, 31 Jan 2004 22:40:55 +0000
(22:40 +0000)
flist.c
patch
|
blob
|
blame
|
history
diff --git
a/flist.c
b/flist.c
index
245a7ef
..
c9ec080
100644
(file)
--- a/
flist.c
+++ b/
flist.c
@@
-441,18
+441,22
@@
void send_file_entry(struct file_struct *file, int f, unsigned short base_flags)
if (l2 > 255)
flags |= XMIT_LONG_NAME;
if (l2 > 255)
flags |= XMIT_LONG_NAME;
- /* We must make sure we don't send a zero flag
-byte or
- *
the other end will terminate the flist transfer. */
- if (!(flags & 0xFF) && !S_ISDIR(mode))
-
flags |= XMIT_TOP_DIR; /* NOTE: no meaning for non-dir
*/
+ /* We must make sure we don't send a zero flag
byte or the
+ *
other end will terminate the flist transfer. Note that
+ * the use of XMIT_TOP_DIR on a non-dir has no meaning, so
+
* it's harmless way to add a bit to the first flag byte.
*/
if (protocol_version >= 28) {
if (protocol_version >= 28) {
- if ((flags & 0xFF00) || !(flags & 0xFF)) {
+ if (!flags && !S_ISDIR(mode))
+ flags |= XMIT_TOP_DIR;
+ if ((flags & 0xFF00) || !flags) {
flags |= XMIT_EXTENDED_FLAGS;
write_byte(f, flags);
write_byte(f, flags >> 8);
} else
write_byte(f, flags);
} else {
flags |= XMIT_EXTENDED_FLAGS;
write_byte(f, flags);
write_byte(f, flags >> 8);
} else
write_byte(f, flags);
} else {
+ if (!(flags & 0xFF) && !S_ISDIR(mode))
+ flags |= XMIT_TOP_DIR;
if (!(flags & 0xFF))
flags |= XMIT_LONG_NAME;
write_byte(f, flags);
if (!(flags & 0xFF))
flags |= XMIT_LONG_NAME;
write_byte(f, flags);