extern int size_only;
extern OFF_T max_size;
extern int io_timeout;
+extern int ignore_timeout;
extern int protocol_version;
extern int fuzzy_basis;
extern int always_checksum;
int need_retouch_dir_perms = 0;
int save_only_existing = only_existing;
int save_opt_ignore_existing = opt_ignore_existing;
+ int allowed_lull = protocol_version >= 29 ? io_timeout / 2 : 0;
if (verbose > 2) {
rprintf(FINFO, "generator starting pid=%ld count=%d\n",
: "enabled");
}
- /* We expect to just sit around now, so don't exit on a timeout.
- * If we really get a timeout then the other process should exit. */
- io_timeout = 0;
+ if (protocol_version < 29)
+ io_timeout = 0; /* kluge for older protocol versions */
for (i = 0; i < flist->count; i++) {
struct file_struct *file = flist->files[i];
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
flist, file, i, f_out, f_out_name);
+
+ if (allowed_lull && !(i % 100))
+ maybe_send_keepalive(allowed_lull, flist->count);
}
recv_generator(NULL, NULL, NULL, 0, -1, -1);
if (delete_during)
update_only = always_checksum = size_only = 0;
ignore_times = 1;
+ /* We expect to just sit around now, so don't exit on a timeout.
+ * If we really get a timeout then the other process should exit. */
+ ignore_timeout = 1;
+
if (verbose > 2)
rprintf(FINFO,"generate_files phase=%d\n",phase);
struct file_struct *file = flist->files[i];
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
flist, file, i, f_out, f_out_name);
+ if (allowed_lull)
+ maybe_send_keepalive(allowed_lull, flist->count);
}
phase++;