chiark / gitweb /
Upgrade licence to GPLv3+.
[tripe] / server / privsep.c
index bbd4814ae6fbe72e1c947f79744575f6835b6b06..0b5390e783bd565c9943429ec0ad0f084e542a29 100644 (file)
@@ -9,19 +9,18 @@
  *
  * This file is part of Trivial IP Encryption (TrIPE).
  *
- * TrIPE is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * TrIPE is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your
+ * option) any later version.
  *
- * TrIPE is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * TrIPE is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with TrIPE; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with TrIPE.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 /*----- Header files ------------------------------------------------------*/
@@ -32,6 +31,7 @@
 /*----- Static variables --------------------------------------------------*/
 
 static pid_t kid = -1;
+static sig sig_chld;
 
 /*----- Fetching a tunnel file descriptor ---------------------------------*/
 
@@ -128,7 +128,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 +185,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);