diff options
| author | mycroft <mycroft@NetBSD.org> | 1995-03-21 21:47:04 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1995-03-21 21:47:04 +0000 |
| commit | ebeae88da2b140f1549cb67e361316e0706b3b2f (patch) | |
| tree | eef0c6a43b36fd97a1d0b6a84de719f025318cea /libexec | |
| parent | d1a49b5d2793298d3c0e1507253b8c7e200eb043 (diff) | |
Use POSIX signals.
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/comsat/comsat.c | 10 | ||||
| -rw-r--r-- | libexec/ftpd/popen.c | 11 |
2 files changed, 15 insertions, 6 deletions
diff --git a/libexec/comsat/comsat.c b/libexec/comsat/comsat.c index 60709f7be2d..01455984953 100644 --- a/libexec/comsat/comsat.c +++ b/libexec/comsat/comsat.c @@ -39,7 +39,7 @@ static char copyright[] = #ifndef lint /*static char sccsid[] = "from: @(#)comsat.c 8.1 (Berkeley) 6/4/93";*/ -static char rcsid[] = "$Id: comsat.c,v 1.6 1994/08/06 23:26:39 jtc Exp $"; +static char rcsid[] = "$Id: comsat.c,v 1.7 1995/03/21 21:47:04 mycroft Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -89,6 +89,7 @@ main(argc, argv) register int cc; int fromlen; char msgbuf[100]; + sigset_t sigset; /* verify proper invocation */ fromlen = sizeof(from); @@ -124,11 +125,14 @@ main(argc, argv) } if (!nutmp) /* no one has logged in yet */ continue; - sigblock(sigmask(SIGALRM)); + sigemptyset(&sigset); + sigaddset(&sigset, SIGALRM); + sigprocmask(SIG_SETMASK, &sigset, NULL); msgbuf[cc] = '\0'; (void)time(&lastmsgtime); mailfor(msgbuf); - sigsetmask(0L); + sigemptyset(&sigset); + sigprocmask(SIG_SETMASK, &sigset, NULL); } } diff --git a/libexec/ftpd/popen.c b/libexec/ftpd/popen.c index 725583abf8e..c8500804ece 100644 --- a/libexec/ftpd/popen.c +++ b/libexec/ftpd/popen.c @@ -37,7 +37,7 @@ #ifndef lint static char sccsid[] = "@(#)popen.c 8.3 (Berkeley) 4/6/94"; -static char rcsid[] = "$Id: popen.c,v 1.3 1994/06/29 01:49:50 deraadt Exp $"; +static char rcsid[] = "$Id: popen.c,v 1.4 1995/03/21 21:47:19 mycroft Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -151,6 +151,7 @@ ftpd_pclose(iop) { int fdes, omask, status; pid_t pid; + sigset_t sigset, osigset; /* * pclose returns -1 if stream is not associated with a @@ -159,10 +160,14 @@ ftpd_pclose(iop) if (pids == 0 || pids[fdes = fileno(iop)] == 0) return (-1); (void)fclose(iop); - omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP)); + sigemptyset(&sigset); + sigaddset(&sigset, SIGINT); + sigaddset(&sigset, SIGQUIT); + sigaddset(&sigset, SIGHUP); + sigprocmask(SIG_BLOCK, &sigset, &osigset); while ((pid = waitpid(pids[fdes], &status, 0)) < 0 && errno == EINTR) continue; - (void)sigsetmask(omask); + sigprocmask(SIG_SETMASK, &osigset, NULL); pids[fdes] = 0; if (pid < 0) return (pid); |
