X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/100018b7cdf4c5df206c16decb07a3c2680bb5e6..9439c0cb5a4b020b9bfcfe0351e33c17b9c53b54:/main.c diff --git a/main.c b/main.c index 3ce2b52a..410ce29e 100644 --- a/main.c +++ b/main.c @@ -4,12 +4,11 @@ * Copyright (C) 1996-2001 Andrew Tridgell * Copyright (C) 1996 Paul Mackerras * Copyright (C) 2001, 2002 Martin Pool - * Copyright (C) 2003, 2004, 2005, 2006, 2007 Wayne Davison + * Copyright (C) 2003-2007 Wayne Davison * * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,6 +21,7 @@ */ #include "rsync.h" +#include "io.h" #if defined CONFIG_LOCALE && defined HAVE_LOCALE_H #include #endif @@ -191,12 +191,12 @@ static void handle_stats(int f) if (am_server) { if (am_sender) { - write_longint(f, total_read); - write_longint(f, total_written); - write_longint(f, stats.total_size); + write_varlong30(f, total_read, 3); + write_varlong30(f, total_written, 3); + write_varlong30(f, stats.total_size, 3); if (protocol_version >= 29) { - write_longint(f, stats.flist_buildtime); - write_longint(f, stats.flist_xfertime); + write_varlong30(f, stats.flist_buildtime, 3); + write_varlong30(f, stats.flist_xfertime, 3); } } return; @@ -209,22 +209,22 @@ static void handle_stats(int f) else if (!am_sender) { /* Read the first two in opposite order because the meaning of * read/write swaps when switching from sender to receiver. */ - total_written = read_longint(f); - total_read = read_longint(f); - stats.total_size = read_longint(f); + total_written = read_varlong30(f, 3); + total_read = read_varlong30(f, 3); + stats.total_size = read_varlong30(f, 3); if (protocol_version >= 29) { - stats.flist_buildtime = read_longint(f); - stats.flist_xfertime = read_longint(f); + stats.flist_buildtime = read_varlong30(f, 3); + stats.flist_xfertime = read_varlong30(f, 3); } } else if (write_batch) { /* The --read-batch process is going to be a client * receiver, so we need to give it the stats. */ - write_longint(batch_fd, total_read); - write_longint(batch_fd, total_written); - write_longint(batch_fd, stats.total_size); + write_varlong30(batch_fd, total_read, 3); + write_varlong30(batch_fd, total_written, 3); + write_varlong30(batch_fd, stats.total_size, 3); if (protocol_version >= 29) { - write_longint(batch_fd, stats.flist_buildtime); - write_longint(batch_fd, stats.flist_xfertime); + write_varlong30(batch_fd, stats.flist_buildtime, 3); + write_varlong30(batch_fd, stats.flist_xfertime, 3); } } } @@ -609,7 +609,7 @@ static void fix_basis_dirs(void) } /* This is only called by the sender. */ -static void read_final_goodbye(int f_in, int f_out) +static void read_final_goodbye(int f_in) { int i, iflags, xlen; uchar fnamecmp_type; @@ -618,8 +618,8 @@ static void read_final_goodbye(int f_in, int f_out) if (protocol_version < 29) i = read_int(f_in); else { - i = read_ndx_and_attrs(f_in, f_out, &iflags, - &fnamecmp_type, xname, &xlen); + i = read_ndx_and_attrs(f_in, &iflags, &fnamecmp_type, + xname, &xlen); } if (i != NDX_DONE) { @@ -678,7 +678,7 @@ static void do_server_sender(int f_in, int f_out, int argc, char *argv[]) io_flush(FULL_FLUSH); handle_stats(f_out); if (protocol_version >= 24) - read_final_goodbye(f_in, f_out); + read_final_goodbye(f_in); io_flush(FULL_FLUSH); exit_cleanup(0); } @@ -728,7 +728,7 @@ static int do_recv(int f_in, int f_out, char *local_name) handle_stats(f_in); send_msg(MSG_DONE, "", 1); - write_longint(error_pipe[1], stats.total_read); + write_varlong(error_pipe[1], stats.total_read, 3); io_flush(FULL_FLUSH); /* Handle any keep-alive packets from the post-processing work @@ -741,7 +741,7 @@ static int do_recv(int f_in, int f_out, char *local_name) kluge_around_eof = -1; /* This should only get stopped via a USR2 signal. */ - read_ndx_and_attrs(f_in, -1, &iflags, &fnamecmp_type, + read_ndx_and_attrs(f_in, &iflags, &fnamecmp_type, xname, &xlen); rprintf(FERROR, "Invalid packet at end of run [%s]\n", @@ -978,7 +978,7 @@ int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[]) io_flush(FULL_FLUSH); handle_stats(-1); if (protocol_version >= 24) - read_final_goodbye(f_in, f_out); + read_final_goodbye(f_in); if (pid != -1) { if (verbose > 3) rprintf(FINFO,"client_run waiting on %d\n", (int) pid);