Added an am_receiver variable.
authorWayne Davison <wayned@samba.org>
Sat, 19 Dec 2009 18:14:49 +0000 (10:14 -0800)
committerWayne Davison <wayned@samba.org>
Sat, 19 Dec 2009 18:14:49 +0000 (10:14 -0800)
cleanup.c
main.c
rsync.c

index 5981bac..76f57b5 100644 (file)
--- a/cleanup.c
+++ b/cleanup.c
@@ -24,8 +24,7 @@
 
 extern int am_server;
 extern int am_daemon;
 
 extern int am_server;
 extern int am_daemon;
-extern int am_sender;
-extern int am_generator;
+extern int am_receiver;
 extern int io_error;
 extern int keep_partial;
 extern int got_xfer_error;
 extern int io_error;
 extern int keep_partial;
 extern int got_xfer_error;
@@ -171,7 +170,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line)
                /* FALLTHROUGH */
 #include "case_N.h"
 
                /* FALLTHROUGH */
 #include "case_N.h"
 
-               if (!code || am_server || (!am_sender && !am_generator))
+               if (!code || am_server || am_receiver)
                        io_flush(FULL_FLUSH);
 
                /* FALLTHROUGH */
                        io_flush(FULL_FLUSH);
 
                /* FALLTHROUGH */
@@ -216,7 +215,7 @@ NORETURN void _exit_cleanup(int code, const char *file, int line)
 #include "case_N.h"
 
                if (exit_code && exit_code != RERR_SOCKETIO && exit_code != RERR_STREAMIO && exit_code != RERR_SIGNAL1
 #include "case_N.h"
 
                if (exit_code && exit_code != RERR_SOCKETIO && exit_code != RERR_STREAMIO && exit_code != RERR_SIGNAL1
-                && !shutting_down && (protocol_version >= 31 || (!am_sender && !am_generator))) {
+                && !shutting_down && (protocol_version >= 31 || am_receiver)) {
                        if (line > 0) {
                                if (DEBUG_GTE(EXIT, 3)) {
                                        rprintf(FINFO, "[%s] sending MSG_ERROR_EXIT with exit_code %d\n",
                        if (line > 0) {
                                if (DEBUG_GTE(EXIT, 3)) {
                                        rprintf(FINFO, "[%s] sending MSG_ERROR_EXIT with exit_code %d\n",
diff --git a/main.c b/main.c
index dec59f4..4f3729e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -94,7 +94,8 @@ extern filter_rule_list daemon_filter_list;
 
 uid_t our_uid;
 gid_t our_gid;
 
 uid_t our_uid;
 gid_t our_gid;
-int am_generator = 0;
+int am_receiver = 0;  /* Only set to 1 after the receiver/generator fork. */
+int am_generator = 0; /* Only set to 1 after the receiver/generator fork. */
 int local_server = 0;
 int daemon_over_rsh = 0;
 mode_t orig_umask = 0;
 int local_server = 0;
 int daemon_over_rsh = 0;
 mode_t orig_umask = 0;
@@ -851,6 +852,7 @@ static int do_recv(int f_in, int f_out, char *local_name)
        }
 
        if (pid == 0) {
        }
 
        if (pid == 0) {
+               am_receiver = 1;
                send_msgs_to_gen = am_server;
 
                close(error_pipe[0]);
                send_msgs_to_gen = am_server;
 
                close(error_pipe[0]);
diff --git a/rsync.c b/rsync.c
index 476792f..31f9696 100644 (file)
--- a/rsync.c
+++ b/rsync.c
@@ -36,6 +36,7 @@ extern int preserve_times;
 extern int am_root;
 extern int am_server;
 extern int am_sender;
 extern int am_root;
 extern int am_server;
 extern int am_sender;
+extern int am_receiver;
 extern int am_generator;
 extern int am_starting_up;
 extern int allow_8bit_chars;
 extern int am_generator;
 extern int am_starting_up;
 extern int allow_8bit_chars;
@@ -719,5 +720,8 @@ const char *who_am_i(void)
 {
        if (am_starting_up)
                return am_server ? "server" : "client";
 {
        if (am_starting_up)
                return am_server ? "server" : "client";
-       return am_sender ? "sender" : am_generator ? "generator" : "receiver";
+       return am_sender ? "sender"
+            : am_generator ? "generator"
+            : am_receiver ? "receiver"
+            : "Receiver"; /* pre-forked receiver */
 }
 }