chiark / gitweb /
server/{keyexch.c,keyset.c}: Eliminate `ks_tregen'.
[tripe] / server / privsep.c
index bbd4814ae6fbe72e1c947f79744575f6835b6b06..d7063b63809eeb253c51db262757c7f5262dfc50 100644 (file)
@@ -32,6 +32,7 @@
 /*----- Static variables --------------------------------------------------*/
 
 static pid_t kid = -1;
+static sig sig_chld;
 
 /*----- Fetching a tunnel file descriptor ---------------------------------*/
 
@@ -128,7 +129,7 @@ lose:
  * Use:                Notices and reports child process death.
  */
 
-static void reap(int sig)
+static void reap(int sig, void *p)
 {
   pid_t k;
   int st;
@@ -185,7 +186,7 @@ void ps_split(int detachp)
   if (!helper) helper = PRIVSEP_HELPER;
   fdflags(fd[0], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
   fdflags(fd[1], 0, 0, FD_CLOEXEC, FD_CLOEXEC);
-  signal(SIGCHLD, reap);
+  sig_add(&sig_chld, SIGCHLD, reap, 0);
   kid = fork();
   if (kid == 0) {
     signal(SIGCHLD, SIG_DFL);