X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ac7aa92290cf67c4e9541c02e10b9f232928c588..e610e50f9c3b8d10a3c96674b007eee125ed55bc:/socket.c diff --git a/socket.c b/socket.c index bf4f26bd..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); } @@ -698,7 +703,7 @@ static int socketpair_tcp(int fd[2]) goto failed; memset(&sock2, 0, sizeof sock2); -#if HAVE_SOCKADDR_SIN_LEN +#if HAVE_SOCKADDR_IN_LEN sock2.sin_len = sizeof sock2; #endif sock2.sin_family = PF_INET; @@ -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]);