From b6e773acc9f27118b215a892ba704123a6df7b72 Mon Sep 17 00:00:00 2001 From: Kevin Steves Date: Sun, 4 Feb 2001 13:20:36 +0000 Subject: - (stevesk) add mysignal() wrapper and use it for the protocol 2 SIGCHLD handler. --- misc.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'misc.c') diff --git a/misc.c b/misc.c index 2d7b2fa6..a073c905 100644 --- a/misc.c +++ b/misc.c @@ -27,6 +27,7 @@ #include "includes.h" RCSID("$OpenBSD: util.c,v 1.6 2000/10/27 07:32:19 markus Exp $"); +#include "misc.h" #include "ssh.h" #include "log.h" @@ -95,3 +96,25 @@ strdelim(char **s) return (old); } + +mysig_t +mysignal(int sig, mysig_t act) +{ +#ifdef HAVE_SIGACTION + struct sigaction sa, osa; + + if (sigaction(sig, 0, &osa) == -1) + return (mysig_t) -1; + if (osa.sa_handler != act) { + memset(&sa, 0, sizeof sa); + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = act; + if (sigaction(sig, &sa, 0) == -1) + return (mysig_t) -1; + } + return (osa.sa_handler); +#else + return (signal(sig, act)); +#endif +} -- cgit v1.2.3