Hi,

Can we remove the #ifdef HAVE_SIGACTION from libevent?  The only
reason to keep it, would be make merging with upstream easier.  Do
we expect any new 1.X versions from upstream?

ok?

bluhm

Index: lib/libevent/evsignal.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/lib/libevent/evsignal.h,v
retrieving revision 1.4
diff -u -p -r1.4 evsignal.h
--- lib/libevent/evsignal.h     21 Apr 2010 20:02:40 -0000      1.4
+++ lib/libevent/evsignal.h     5 Oct 2014 20:21:05 -0000
@@ -29,8 +29,6 @@
 #ifndef _EVSIGNAL_H_
 #define _EVSIGNAL_H_
 
-typedef void (*ev_sighandler_t)(int);
-
 struct evsignal_info {
        struct event ev_signal;
        int ev_signal_pair[2];
@@ -38,11 +36,7 @@ struct evsignal_info {
        volatile sig_atomic_t evsignal_caught;
        struct event_list evsigevents[NSIG];
        sig_atomic_t evsigcaught[NSIG];
-#ifdef HAVE_SIGACTION
        struct sigaction **sh_old;
-#else
-       ev_sighandler_t **sh_old;
-#endif
        int sh_old_max;
 };
 int evsignal_init(struct event_base *);
Index: lib/libevent/signal.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/lib/libevent/signal.c,v
retrieving revision 1.16
diff -u -p -r1.16 signal.c
--- lib/libevent/signal.c       29 Apr 2013 00:28:23 -0000      1.16
+++ lib/libevent/signal.c       5 Oct 2014 20:06:03 -0000
@@ -140,11 +140,7 @@ int
 _evsignal_set_handler(struct event_base *base,
                      int evsignal, void (*handler)(int))
 {
-#ifdef HAVE_SIGACTION
        struct sigaction sa;
-#else
-       ev_sighandler_t sh;
-#endif
        struct evsignal_info *sig = &base->sig;
        void *p;
 
@@ -177,7 +173,6 @@ _evsignal_set_handler(struct event_base 
        }
 
        /* save previous handler and setup new handler */
-#ifdef HAVE_SIGACTION
        memset(&sa, 0, sizeof(sa));
        sa.sa_handler = handler;
        sa.sa_flags |= SA_RESTART;
@@ -189,15 +184,6 @@ _evsignal_set_handler(struct event_base 
                sig->sh_old[evsignal] = NULL;
                return (-1);
        }
-#else
-       if ((sh = signal(evsignal, handler)) == SIG_ERR) {
-               event_warn("signal");
-               free(sig->sh_old[evsignal]);
-               sig->sh_old[evsignal] = NULL;
-               return (-1);
-       }
-       *sig->sh_old[evsignal] = sh;
-#endif
 
        return (0);
 }
@@ -240,26 +226,15 @@ _evsignal_restore_handler(struct event_b
 {
        int ret = 0;
        struct evsignal_info *sig = &base->sig;
-#ifdef HAVE_SIGACTION
        struct sigaction *sh;
-#else
-       ev_sighandler_t *sh;
-#endif
 
        /* restore previous handler */
        sh = sig->sh_old[evsignal];
        sig->sh_old[evsignal] = NULL;
-#ifdef HAVE_SIGACTION
        if (sigaction(evsignal, sh, NULL) == -1) {
                event_warn("sigaction");
                ret = -1;
        }
-#else
-       if (signal(evsignal, *sh) == SIG_ERR) {
-               event_warn("signal");
-               ret = -1;
-       }
-#endif
        free(sh);
 
        return ret;
@@ -299,10 +274,6 @@ evsignal_handler(int sig)
 
        evsignal_base->sig.evsigcaught[sig]++;
        evsignal_base->sig.evsignal_caught = 1;
-
-#ifndef HAVE_SIGACTION
-       signal(sig, evsignal_handler);
-#endif
 
        /* Wake up our notification mechanism */
        send(evsignal_base->sig.ev_signal_pair[0], "a", 1, 0);

Reply via email to