X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/16f72adc49774fe39021ba998abbb7eabd82cd2c..e610e50f9c3b8d10a3c96674b007eee125ed55bc:/socket.c diff --git a/socket.c b/socket.c index 772bb925..264c5321 100644 --- a/socket.c +++ b/socket.c @@ -299,9 +299,14 @@ int open_socket_out(char *host, int port, const char *bind_address, int open_socket_out_wrapped(char *host, int port, const char *bind_address, int af_hint) { - char *prog; + char *prog = getenv("RSYNC_CONNECT_PROG"); - if ((prog = getenv("RSYNC_CONNECT_PROG")) != NULL) + if (verbose >= 2) { + rprintf(FINFO, "%sopening tcp connection to %s port %d\n", + prog ? "Using RSYNC_CONNECT_PROG instead of " : "", + host, port); + } + if (prog) return sock_exec(prog); return open_socket_out(host, port, bind_address, af_hint); } @@ -431,10 +436,10 @@ int is_a_socket(int fd) static RETSIGTYPE sigchld_handler(UNUSED(int val)) { - signal(SIGCHLD, sigchld_handler); #ifdef WNOHANG while (waitpid(-1, NULL, WNOHANG) > 0) {} #endif + signal(SIGCHLD, sigchld_handler); } @@ -769,18 +774,14 @@ int sock_exec(const char *prog) strerror(errno)); return -1; } + if (verbose >= 2) + rprintf(FINFO, "Running socket program: \"%s\"\n", prog); if (fork() == 0) { close(fd[0]); close(0); close(1); dup(fd[1]); dup(fd[1]); - if (verbose > 3) { - /* Can't use rprintf because we've forked. */ - fprintf(stderr, - RSYNC_NAME ": execute socket program \"%s\"\n", - prog); - } exit(system(prog)); } close(fd[1]);