X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/3ba62a830825f5e1e1f70a8ec1f85abeaadc3f1f..7796395a0aaa485ef4aa6e2dea1023ee3a273d36:/main.c diff --git a/main.c b/main.c index 23a465c8..ec408185 100644 --- a/main.c +++ b/main.c @@ -58,22 +58,22 @@ int numeric_ids = 0; extern int csum_length; int am_server = 0; -static int sender = 0; +static int sender; int recurse = 0; static void usage(FILE *f); static void report(int f) { - int in,out,tsize; + off_t in,out,tsize; time_t t = time(NULL); if (!verbose) return; if (am_server && sender) { - write_int(f,read_total()); - write_int(f,write_total()); - write_int(f,total_size); + write_longint(f,read_total()); + write_longint(f,write_total()); + write_longint(f,total_size); write_flush(f); return; } @@ -81,17 +81,24 @@ static void report(int f) if (sender) { in = read_total(); out = write_total(); - tsize = (int)total_size; + tsize = total_size; } else { - in = read_int(f); - out = read_int(f); - tsize = read_int(f); + in = read_longint(f); + out = read_longint(f); + tsize = read_longint(f); } - printf("wrote %d bytes read %d bytes %g bytes/sec\n", - out,in,(in+out)/(0.5 + (t-starttime))); - printf("total size is %d speedup is %g\n", - tsize,(1.0*tsize)/(in+out)); +#if HAVE_LONGLONG + printf("wrote %lld bytes read %lld bytes %g bytes/sec\n", + (long long)out,(long long)in,(in+out)/(0.5 + (t-starttime))); + printf("total size is %lld speedup is %g\n", + (long long)tsize,(1.0*tsize)/(in+out)); +#else + printf("wrote %ld bytes read %ld bytes %g bytes/sec\n", + (long)out,(long)in,(in+out)/(0.5 + (t-starttime))); + printf("total size is %ld speedup is %g\n", + (long)tsize,(1.0*tsize)/(in+out)); +#endif } @@ -220,23 +227,10 @@ static int do_cmd(char *cmd,char *machine,char *user,char *path,int *f_in,int *f server_options(args,&argc); - if (path && *path) { - dir = strdup(path); - p = strrchr(dir,'/'); - if (p && !relative_paths) { - *p = 0; - if (!dir[0]) - args[argc++] = "/"; - else - args[argc++] = dir; - p++; - } else { - args[argc++] = "."; - p = dir; - } - if (p[0]) - args[argc++] = path; - } + args[argc++] = "."; + + if (path && *path) + args[argc++] = path; args[argc] = NULL; @@ -306,31 +300,31 @@ static char *get_local_name(struct file_list *flist,char *name) void do_server_sender(int argc,char *argv[]) { int i; - char *dir = argv[0]; struct file_list *flist; + char *dir = argv[0]; if (verbose > 2) fprintf(FERROR,"server_sender starting pid=%d\n",(int)getpid()); if (!relative_paths && chdir(dir) != 0) { - fprintf(FERROR,"chdir %s: %s (3)\n",dir,strerror(errno)); - exit_cleanup(1); + fprintf(FERROR,"chdir %s: %s (3)\n",dir,strerror(errno)); + exit_cleanup(1); } argc--; argv++; if (strcmp(dir,".")) { - int l = strlen(dir); - if (strcmp(dir,"/") == 0) - l = 0; - for (i=0;i 2) - fprintf(FERROR,"receiver read %d\n",read_total()); + fprintf(FERROR,"receiver read %ld\n",(long)read_total()); exit_cleanup(0); } @@ -374,21 +368,22 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name) void do_server_recv(int argc,char *argv[]) { int status; - char *dir = NULL; struct file_list *flist; char *local_name=NULL; + char *dir = NULL; if (verbose > 2) fprintf(FERROR,"server_recv(%d) starting pid=%d\n",argc,(int)getpid()); if (argc > 0) { - dir = argv[0]; - argc--; - argv++; - if (chdir(dir) != 0) { - fprintf(FERROR,"chdir %s : %s (4)\n",dir,strerror(errno)); - exit_cleanup(1); - } + dir = argv[0]; + argc--; + argv++; + if (chdir(dir) != 0) { + fprintf(FERROR,"chdir %s : %s (4)\n", + dir,strerror(errno)); + exit_cleanup(1); + } } if (delete_mode) @@ -401,11 +396,11 @@ void do_server_recv(int argc,char *argv[]) } if (argc > 0) { - if (strcmp(dir,".")) { - argv[0] += strlen(dir); - if (argv[0][0] == '/') argv[0]++; - } - local_name = get_local_name(flist,argv[0]); + if (strcmp(dir,".")) { + argv[0] += strlen(dir); + if (argv[0][0] == '/') argv[0]++; + } + local_name = get_local_name(flist,argv[0]); } status = do_recv(STDIN_FILENO,STDOUT_FILENO,flist,local_name); @@ -526,7 +521,7 @@ int main(int argc,char *argv[]) /* we set a 0 umask so that correct file permissions can be carried across */ - orig_umask = umask(0); + orig_umask = (int)umask(0); while ((opt = getopt_long(argc, argv, short_options, long_options, &option_index))