rprintf(FINFO,"file list sent\n");
send_files(flist,f_out,f_in);
+ if (remote_version >= 24) {
+ /* final goodbye message */
+ read_int(f_in);
+ }
if (pid != -1) {
if (verbose > 3)
rprintf(FINFO,"client_run waiting on %d\n",pid);
io_flush();
wait_process(pid, &status);
}
- if (remote_version >= 24) {
- /* final goodbye message */
- read_int(f_in);
- }
report(-1);
exit_cleanup(status);
}
extern int am_sender;
extern char *shell_cmd;
extern int rsync_port;
+ extern int whole_file;
char *argv0 = strdup(argv[0]);
if (strncasecmp(URL_PREFIX, argv0, strlen(URL_PREFIX)) == 0) {
p = find_colon(argv[argc-1]);
if (!p) {
local_server = 1;
+ /* disable "rsync algorithm" when both sides local */
+ whole_file = 1;
} else if (p[1] == ':') {
*p = 0;
return start_socket_client(argv[argc-1], p+2, argc-1, argv);
}
static RETSIGTYPE sigchld_handler(int val) {
+#ifdef WNOHANG
+ while (waitpid(-1, NULL, WNOHANG) > 0) ;
+#endif
}
int main(int argc,char *argv[])