X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/a054570942981a1bb35ea81cb25a299688c4209a..87a57a3072c0fe742b154bd62869cc08c65625bb:/sender.c diff --git a/sender.c b/sender.c index 5c7b9c54..00b60c94 100644 --- a/sender.c +++ b/sender.c @@ -28,6 +28,7 @@ extern int log_format_has_i; extern int daemon_log_format_has_i; extern int csum_length; extern int io_error; +extern int allowed_lull; extern int protocol_version; extern int remove_sent_files; extern int updating_basis_file; @@ -56,6 +57,7 @@ static struct sum_struct *receive_sums(int f) { struct sum_struct *s; int32 i; + int lull_mod = allowed_lull * 5; OFF_T offset = 0; if (!(s = new(struct sum_struct))) @@ -89,6 +91,9 @@ static struct sum_struct *receive_sums(int f) s->sums[i].len = s->blength; offset += s->sums[i].len; + if (allowed_lull && !(i % lull_mod)) + maybe_send_keepalive(); + if (verbose > 3) { rprintf(FINFO, "chunk[%d] len=%d offset=%.0f sum1=%08x\n", @@ -175,10 +180,6 @@ int read_item_attrs(int f_in, int f_out, int ndx, uchar *type_ptr, } *len_ptr = len; - /* Temporary handling of 2.6.4pre3 */ - if (iflags & ITEM_DUMMY_BIT && iflags & (ITEM_LOCAL_CHANGE|ITEM_TRANSFER)) - iflags &= ~ITEM_DUMMY_BIT; - if (iflags & ITEM_TRANSFER) { if (!S_ISREG(the_file_list->files[ndx]->mode)) { rprintf(FERROR, @@ -233,7 +234,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) continue; } - iflags = read_item_attrs(f_in, f_xfer, i, &fnamecmp_type, + iflags = read_item_attrs(f_in, f_out, i, &fnamecmp_type, xname, &xlen); if (iflags == ITEM_IS_NEW) /* no-op packet */ continue; @@ -272,7 +273,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) if (!do_xfers) { /* log the transfer */ if (!am_server && log_format) log_item(file, &stats, iflags, NULL); - write_ndx_and_attrs(f_xfer, i, iflags, fnamecmp_type, + write_ndx_and_attrs(f_out, i, iflags, fnamecmp_type, xname, xlen); continue; } @@ -324,7 +325,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) safe_fname(fname), (double)st.st_size); } - write_ndx_and_attrs(f_xfer, i, iflags, fnamecmp_type, + write_ndx_and_attrs(f_out, i, iflags, fnamecmp_type, xname, xlen); write_sum_head(f_xfer, s);