diff options
-rw-r--r-- | server/main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/server/main.c b/server/main.c index b6453f4..23b0abb 100644 --- a/server/main.c +++ b/server/main.c @@ -546,11 +546,13 @@ reap(int sig) static void do_reset(void) { - int oerrno = errno; + int oerrno; + int omask; #if 0 zdbug((LOG_DEBUG,"do_reset()")); #endif - SignalBlock no_hups (sigmask (SIGHUP)); + omask = sigblock (sigmask (SIGHUP)); + oerrno = errno; /* reset various things in the server's state */ subscr_reset(); @@ -559,6 +561,7 @@ do_reset(void) syslog (LOG_INFO, "restart completed"); doreset = 0; errno = oerrno; + sigsetmask (omask); } #ifndef DEBUG |