with the new error handling code it is possible for rsync to get stuck
on the final transaction, leaving it hung.
looks like 2.4.1 will be pretty soon
extern int delete_after;
extern int recurse;
extern int delete_mode;
extern int delete_after;
extern int recurse;
extern int delete_mode;
+ extern int remote_version;
if (preserve_hard_links)
init_hard_links(flist);
if (preserve_hard_links)
init_hard_links(flist);
recv_files(f_in,flist,local_name,recv_pipe[1]);
report(f_in);
recv_files(f_in,flist,local_name,recv_pipe[1]);
report(f_in);
+ write_int(recv_pipe[1],-1);
generate_files(f_out,flist,local_name,recv_pipe[0]);
generate_files(f_out,flist,local_name,recv_pipe[0]);
+ read_int(recv_pipe[1]);
+ if (remote_version >= 24) {
+ /* send a final goodbye message */
+ write_int(f_out, -1);
+ }
wait_process(pid, &status);
return status;
}
wait_process(pid, &status);
return status;
}
wait_process(pid, &status);
}
report(-1);
wait_process(pid, &status);
}
report(-1);
+ if (remote_version >= 24) {
+ /* final goodbye message */
+ read_int(f_in);
+ }
#define SAME_TIME (1<<7)
/* update this if you make incompatible changes */
#define SAME_TIME (1<<7)
/* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 23
+#define PROTOCOL_VERSION 24
#define MIN_PROTOCOL_VERSION 15
#define MAX_PROTOCOL_VERSION 30
#define MIN_PROTOCOL_VERSION 15
#define MAX_PROTOCOL_VERSION 30