summaryrefslogtreecommitdiff
path: root/openbsd-compat/bsd-signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsd-compat/bsd-signal.c')
-rw-r--r--openbsd-compat/bsd-signal.c33
1 files changed, 0 insertions, 33 deletions
diff --git a/openbsd-compat/bsd-signal.c b/openbsd-compat/bsd-signal.c
index 104ab653f..38d5e972e 100644
--- a/openbsd-compat/bsd-signal.c
+++ b/openbsd-compat/bsd-signal.c
@@ -23,39 +23,6 @@
23 23
24#include "openbsd-compat/bsd-signal.h" 24#include "openbsd-compat/bsd-signal.h"
25 25
26#undef signal
27
28mysig_t
29mysignal(int sig, mysig_t act)
30{
31#ifdef HAVE_SIGACTION
32 struct sigaction sa, osa;
33
34 if (sigaction(sig, NULL, &osa) == -1)
35 return (mysig_t) -1;
36 if (osa.sa_handler != act) {
37 memset(&sa, 0, sizeof(sa));
38 sigemptyset(&sa.sa_mask);
39 sa.sa_flags = 0;
40 if (sig == SIGALRM) {
41#ifdef SA_INTERRUPT
42 sa.sa_flags |= SA_INTERRUPT;
43#endif
44 } else {
45#ifdef SA_RESTART
46 sa.sa_flags |= SA_RESTART;
47#endif
48 }
49 sa.sa_handler = act;
50 if (sigaction(sig, &sa, NULL) == -1)
51 return (mysig_t) -1;
52 }
53 return (osa.sa_handler);
54#else
55 return (signal(sig, act));
56#endif
57}
58
59#if !defined(HAVE_STRSIGNAL) 26#if !defined(HAVE_STRSIGNAL)
60char *strsignal(int sig) 27char *strsignal(int sig)
61{ 28{