summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbsd-compat/bsd-signal.c33
-rw-r--r--openbsd-compat/bsd-signal.h5
2 files changed, 0 insertions, 38 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{
diff --git a/openbsd-compat/bsd-signal.h b/openbsd-compat/bsd-signal.h
index 4cb8cb7a0..dafb4b199 100644
--- a/openbsd-compat/bsd-signal.h
+++ b/openbsd-compat/bsd-signal.h
@@ -27,11 +27,6 @@
27# endif 27# endif
28#endif 28#endif
29 29
30/* wrapper for signal interface */
31typedef void (*mysig_t)(int);
32mysig_t mysignal(int sig, mysig_t act);
33#define signal(a,b) mysignal(a,b)
34
35#if !defined(HAVE_STRSIGNAL) 30#if !defined(HAVE_STRSIGNAL)
36char *strsignal(int); 31char *strsignal(int);
37#endif 32#endif