Commit 9098bbf3 authored by Martin Pool's avatar Martin Pool

Improved network error handling. (Greg A. Woods)

parent 68618b88
......@@ -28,3 +28,5 @@ rsync changes since last release
trailing slashes.
<http://www.opensource.apple.com/bugs/X/BSD%20Kernel/2734739.html>
(Martin Pool)
* Improved network error handling. (Greg A. Woods)
......@@ -40,12 +40,17 @@ pid_t cleanup_child_pid = -1;
*/
void _exit_cleanup(int code, const char *file, int line)
{
int ocode = code;
extern int keep_partial;
extern int log_got_error;
signal(SIGUSR1, SIG_IGN);
signal(SIGUSR2, SIG_IGN);
if (verbose > 3)
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
code, file, line);
if (cleanup_child_pid != -1) {
int status;
if (waitpid(cleanup_child_pid, &status, WNOHANG) == cleanup_child_pid) {
......@@ -81,6 +86,10 @@ void _exit_cleanup(int code, const char *file, int line)
if (code) log_exit(code, file, line);
if (verbose > 2)
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)\n",
ocode, file, line, code);
exit(code);
}
......
......@@ -47,6 +47,7 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
extern int remote_version;
extern int am_sender;
extern char *shell_cmd;
extern int list_only;
extern int kludge_around_eof;
extern char *bind_address;
extern int default_af_hint;
......@@ -126,7 +127,7 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
/* Old servers may just drop the connection here,
rather than sending a proper EXIT command. Yuck. */
kludge_around_eof = remote_version < 25;
kludge_around_eof = list_only && (remote_version < 25);
while (1) {
if (!read_line(fd, line, sizeof(line)-1)) {
......
......@@ -881,8 +881,10 @@ int main(int argc,char *argv[])
ret = start_client(argc, argv);
if (ret == -1)
exit_cleanup(RERR_STARTCLIENT);
exit_cleanup(RERR_STARTCLIENT);
else
exit_cleanup(ret);
return ret;
exit_cleanup(ret);
exit(ret);
/* NOTREACHED */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment