When starting up a transfer, substitute the remember_children()
authorWayne Davison <wayned@samba.org>
Mon, 20 Feb 2006 17:17:51 +0000 (17:17 +0000)
committerWayne Davison <wayned@samba.org>
Mon, 20 Feb 2006 17:17:51 +0000 (17:17 +0000)
SIGCHLD handler in place of the minimal one that socket.c enabled.

clientserver.c

index 3b53958..eb64456 100644 (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);
 }