When starting up a transfer, substitute the remember_children()

SIGCHLD handler in place of the minimal one that socket.c enabled.
This commit is contained in:
Wayne Davison
2006-02-20 17:17:51 +00:00
parent 6d59ac192b
commit d749eb6896

View File

@@ -63,6 +63,10 @@ struct chmod_mode_struct *daemon_chmod_modes;
/* Length of lp_path() string when in daemon mode & not chrooted, else 0. */
unsigned int module_dirlen = 0;
#ifdef HAVE_SIGACTION
static struct sigaction sigact;
#endif
/**
* Run a client connected to an rsyncd. The alternative to this
* function for remote-shell connections is do_cmd().
@@ -796,6 +800,11 @@ int start_daemon(int f_in, int f_out)
return -1;
}
#ifdef HAVE_SIGACTION
sigact.sa_flags = SA_NOCLDSTOP;
#endif
SIGACTION(SIGCHLD, remember_children);
return rsync_module(f_in, f_out, i);
}