Explicitly cast the length values down to an uint32 so that some
[rsync/rsync.git] / io.c
diff --git a/io.c b/io.c
index 79fb7e9..8fe8284 100644 (file)
--- a/io.c
+++ b/io.c
@@ -336,19 +336,21 @@ void increment_active_files(int ndx, int itemizing, enum logcode code)
 {
        /* TODO: tune these limits? */
        while (active_filecnt >= (active_bytecnt >= 128*1024 ? 10 : 50)) {
+#ifdef SUPPORT_HARD_LINKS
                if (hlink_list.head)
                        check_for_finished_hlinks(itemizing, code);
+#endif
                read_msg_fd();
        }
 
        active_filecnt++;
-       active_bytecnt += the_file_list->files[ndx]->length;
+       active_bytecnt += F_LENGTH(the_file_list->files[ndx]);
 }
 
 void decrement_active_files(int ndx)
 {
        active_filecnt--;
-       active_bytecnt -= the_file_list->files[ndx]->length;
+       active_bytecnt -= F_LENGTH(the_file_list->files[ndx]);
 }
 
 /* Try to push messages off the list onto the wire.  If we leave with more
@@ -405,11 +407,20 @@ int send_msg(enum msgcode code, const char *buf, int len)
        return 1;
 }
 
+void send_msg_int(enum msgcode code, int num)
+{
+       char numbuf[4];
+       SIVAL(numbuf, 0, num);
+       send_msg(code, numbuf, 4);
+}
+
 int get_redo_num(int itemizing, enum logcode code)
 {
        while (1) {
+#ifdef SUPPORT_HARD_LINKS
                if (hlink_list.head)
                        check_for_finished_hlinks(itemizing, code);
+#endif
                if (redo_list.head)
                        break;
                read_msg_fd();