The "ndx" variable now holds the unique, over-the-wire value, not
[rsync/rsync.git] / main.c
diff --git a/main.c b/main.c
index 2d2b697..3ce2b52 100644 (file)
--- a/main.c
+++ b/main.c
@@ -4,7 +4,7 @@
  * Copyright (C) 1996-2001 Andrew Tridgell <tridge@samba.org>
  * Copyright (C) 1996 Paul Mackerras
  * Copyright (C) 2001, 2002 Martin Pool <mbp@samba.org>
- * Copyright (C) 2003, 2004, 2005, 2006 Wayne Davison
+ * Copyright (C) 2003, 2004, 2005, 2006, 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
@@ -34,7 +34,7 @@ extern int am_server;
 extern int am_sender;
 extern int am_generator;
 extern int am_daemon;
-extern int incremental;
+extern int inc_recurse;
 extern int blocking_io;
 extern int remove_source_files;
 extern int daemon_over_rsh;
@@ -727,7 +727,8 @@ static int do_recv(int f_in, int f_out, char *local_name)
                io_flush(FULL_FLUSH);
                handle_stats(f_in);
 
-               send_msg(MSG_DONE, "", 0);
+               send_msg(MSG_DONE, "", 1);
+               write_longint(error_pipe[1], stats.total_read);
                io_flush(FULL_FLUSH);
 
                /* Handle any keep-alive packets from the post-processing work
@@ -776,7 +777,7 @@ static int do_recv(int f_in, int f_out, char *local_name)
        io_flush(FULL_FLUSH);
        if (protocol_version >= 24) {
                /* send a final goodbye message */
-               write_int(f_out, NDX_DONE);
+               write_ndx(f_out, NDX_DONE);
        }
        io_flush(FULL_FLUSH);
 
@@ -843,7 +844,7 @@ static void do_server_recv(int f_in, int f_out, int argc, char *argv[])
                rprintf(FERROR,"server_recv: recv_file_list error\n");
                exit_cleanup(RERR_FILESELECT);
        }
-       if (incremental && file_total == 1)
+       if (inc_recurse && file_total == 1)
                recv_additional_file_list(f_in);
        verbose = save_verbose;
 
@@ -1009,7 +1010,7 @@ int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[])
        if (write_batch && !am_server)
                start_write_batch(f_in);
        flist = recv_file_list(f_in);
-       if (incremental && file_total == 1)
+       if (inc_recurse && file_total == 1)
                recv_additional_file_list(f_in);
 
        if (flist && flist->count > 0) {