extern int am_sender;
extern int am_daemon;
- if (!verbose) return;
-
if (am_daemon) {
rprintf(FINFO, "wrote %.0f bytes read %.0f bytes total size %.0f\n",
(double)write_total(),(double)read_total(),
(double)total_size);
+ if (f == -1 || !am_sender) return;
}
+ if (!verbose) return;
+
if (am_server && am_sender) {
write_longint(f,read_total());
write_longint(f,write_total());
static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
{
- int pid;
- int status=0;
- int recv_pipe[2];
- extern int preserve_hard_links;
+ int pid;
+ int status=0;
+ int recv_pipe[2];
+ extern int preserve_hard_links;
+ extern int am_daemon;
- if (preserve_hard_links)
- init_hard_links(flist);
+ if (preserve_hard_links)
+ init_hard_links(flist);
- if (pipe(recv_pipe) < 0) {
- rprintf(FERROR,"pipe failed in do_recv\n");
- exit(1);
- }
+ if (pipe(recv_pipe) < 0) {
+ rprintf(FERROR,"pipe failed in do_recv\n");
+ exit(1);
+ }
- if ((pid=do_fork()) == 0) {
- recv_files(f_in,flist,local_name,recv_pipe[1]);
- if (verbose > 2)
- rprintf(FINFO,"receiver read %ld\n",(long)read_total());
- exit_cleanup(0);
- }
+ if ((pid=do_fork()) == 0) {
+ close(recv_pipe[0]);
+ recv_files(f_in,flist,local_name,recv_pipe[1]);
+ if (am_daemon) report(-1);
+ exit_cleanup(0);
+ }
- generate_files(f_out,flist,local_name,recv_pipe[0]);
+ close(recv_pipe[1]);
+ generate_files(f_out,flist,local_name,recv_pipe[0]);
- waitpid(pid, &status, 0);
+ waitpid(pid, &status, 0);
- return status;
+ return status;
}
return daemon_main();
}
+ if (argc < 1) {
+ usage(FERROR);
+ exit(1);
+ }
+
if (dry_run)
verbose = MAX(verbose,1);