extern int do_stats;
if (am_daemon) {
- syslog(LOG_INFO,"wrote %.0f bytes read %.0f bytes total size %.0f\n",
- (double)stats.total_written,
- (double)stats.total_read,
- (double)stats.total_size);
+ log_exit(0);
if (f == -1 || !am_sender) return;
}
argv[0] = ".";
}
+ set_nonblocking(f_out);
+ if (f_in != f_out)
+ set_nonblocking(f_in);
+
flist = send_file_list(f_out,argc,argv);
if (!flist || flist->count == 0) {
exit_cleanup(0);
}
- set_nonblocking(f_out);
- if (f_in != f_out)
- set_nonblocking(f_in);
-
send_files(flist,f_out,f_in);
report(f_out);
io_flush();
if (f_in != f_out) close(f_out);
set_nonblocking(f_in);
+ set_nonblocking(recv_pipe[1]);
recv_files(f_in,flist,local_name,recv_pipe[1]);
report(f_in);
if (f_in != f_out) close(f_in);
set_nonblocking(f_out);
+ set_nonblocking(recv_pipe[0]);
io_start_buffering(f_out);
extern int cvs_exclude;
extern int am_sender;
+ set_nonblocking(f_out);
+ if (f_in != f_out)
+ set_nonblocking(f_in);
+
setup_protocol(f_out, f_in);
-
+
if (am_sender) {
recv_exclude_list(f_in);
if (cvs_exclude)
int status = 0, status2 = 0;
char *local_name = NULL;
extern int am_sender;
+ extern int list_only;
setup_protocol(f_out,f_in);
report(-1);
exit_cleanup(status);
}
+
+ if (argc == 0) list_only = 1;
send_exclude_list(f_out);
extern int am_sender;
extern char *shell_cmd;
+ if (strncasecmp(URL_PREFIX, argv[0], strlen(URL_PREFIX)) == 0) {
+ char *host, *path;
+
+ host = argv[0] + strlen(URL_PREFIX);
+ p = strchr(host,'/');
+ if (p) {
+ *p = 0;
+ path = p+1;
+ } else {
+ path="";
+ }
+ return start_socket_client(host, path, argc-1, argv+1);
+ }
+
p = find_colon(argv[0]);
if (p) {
return start_socket_client(argv[0], p+2, argc-1, argv+1);
}
- if (argc < 2) {
+ if (argc < 1) {
usage(FERROR);
exit_cleanup(1);
}
shell_path?shell_path:"");
}
- if (!am_sender && argc != 1) {
+ if (!am_sender && argc > 1) {
usage(FERROR);
exit_cleanup(1);
}
}
-RETSIGTYPE sigusr1_handler(int val) {
+static RETSIGTYPE sigusr1_handler(int val) {
exit_cleanup(1);
}
carried across */
orig_umask = (int)umask(0);
- parse_arguments(argc, argv);
+ if (!parse_arguments(argc, argv)) {
+ exit_cleanup(1);
+ }
argc -= optind;
argv += optind;
signal(SIGINT,SIGNAL_CAST sig_int);
signal(SIGPIPE,SIGNAL_CAST sig_int);
signal(SIGHUP,SIGNAL_CAST sig_int);
+ signal(SIGTERM,SIGNAL_CAST sig_int);
if (am_daemon) {
return daemon_main();