X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fsignals.c;h=00f516cd59e7f570d68742270fceecf3fb626d32;hp=919b8e0ecb79b2618530eaf90d3cc8a2c733b4d3;hb=a485ed478abbd599d8c9aab48934e7a26733ecb1;hpb=f480c03187724e54e5391ee61b810827da319a6c diff --git a/sbr/signals.c b/sbr/signals.c index 919b8e0..00f516c 100644 --- a/sbr/signals.c +++ b/sbr/signals.c @@ -1,4 +1,3 @@ - /* * signals.c -- general signals interface for nmh * @@ -15,26 +14,26 @@ int SIGPROCMASK (int how, const sigset_t *set, sigset_t *oset) { #ifdef POSIX_SIGNALS - return sigprocmask(how, set, oset); + return sigprocmask(how, set, oset); #else # ifdef BSD_SIGNALS - switch(how) { - case SIG_BLOCK: - *oset = sigblock(*set); - break; - case SIG_UNBLOCK: - sigfillset(*oset); - *oset = sigsetmask(*oset); - sigsetmask(*oset & ~(*set)); - break; - case SIG_SETMASK: - *oset = sigsetmask(*set); - break; - default: - adios(NULL, "unknown flag in SIGPROCMASK"); - break; - } - return 0; + switch(how) { + case SIG_BLOCK: + *oset = sigblock(*set); + break; + case SIG_UNBLOCK: + sigfillset(*oset); + *oset = sigsetmask(*oset); + sigsetmask(*oset & ~(*set)); + break; + case SIG_SETMASK: + *oset = sigsetmask(*set); + break; + default: + adios(NULL, "unknown flag in SIGPROCMASK"); + break; + } + return 0; # endif #endif } @@ -51,26 +50,26 @@ SIGNAL_HANDLER SIGNAL (int sig, SIGNAL_HANDLER func) { #ifdef POSIX_SIGNALS - struct sigaction act, oact; + struct sigaction act, oact; - act.sa_handler = func; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; + act.sa_handler = func; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; - if (sig == SIGALRM) { + if (sig == SIGALRM) { # ifdef SA_INTERRUPT - act.sa_flags |= SA_INTERRUPT; /* SunOS */ + act.sa_flags |= SA_INTERRUPT; /* SunOS */ # endif - } else { + } else { # ifdef SA_RESTART - act.sa_flags |= SA_RESTART; /* SVR4, BSD4.4 */ + act.sa_flags |= SA_RESTART; /* SVR4, BSD4.4 */ # endif - } - if (sigaction(sig, &act, &oact) < 0) - return (SIG_ERR); - return (oact.sa_handler); + } + if (sigaction(sig, &act, &oact) < 0) + return (SIG_ERR); + return (oact.sa_handler); #else - return signal (sig, func); + return signal (sig, func); #endif } @@ -85,34 +84,33 @@ SIGNAL_HANDLER SIGNAL2 (int sig, SIGNAL_HANDLER func) { #ifdef POSIX_SIGNALS - struct sigaction act, oact; + struct sigaction act, oact; - if (sigaction(sig, NULL, &oact) < 0) - return (SIG_ERR); - if (oact.sa_handler != SIG_IGN) { - act.sa_handler = func; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; + if (sigaction(sig, NULL, &oact) < 0) + return (SIG_ERR); + if (oact.sa_handler != SIG_IGN) { + act.sa_handler = func; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; - if (sig == SIGALRM) { + if (sig == SIGALRM) { # ifdef SA_INTERRUPT - act.sa_flags |= SA_INTERRUPT; /* SunOS */ + act.sa_flags |= SA_INTERRUPT; /* SunOS */ # endif - } else { + } else { # ifdef SA_RESTART - act.sa_flags |= SA_RESTART; /* SVR4, BSD4.4 */ + act.sa_flags |= SA_RESTART; /* SVR4, BSD4.4 */ # endif + } + if (sigaction(sig, &act, &oact) < 0) + return (SIG_ERR); } - if (sigaction(sig, &act, &oact) < 0) - return (SIG_ERR); - } - return (oact.sa_handler); + return (oact.sa_handler); #else - SIGNAL_HANDLER ofunc; + SIGNAL_HANDLER ofunc; - if ((ofunc = signal (sig, SIG_IGN)) != SIG_IGN) - signal (sig, func); - return ofunc; + if ((ofunc = signal (sig, SIG_IGN)) != SIG_IGN) + signal (sig, func); + return ofunc; #endif } -