diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index 87cd205b1c14b8adf1d2007d9b5d681701cc487e..f38241e4f83aec75df78636b619d32c528b98d39 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -780,7 +780,15 @@ static void handle_sigs(void) { sigset_t sigs; char str[1024]; - sigfillset(&sigs); + /* Set up blocked signals */ + sigemptyset(&sigs); + sigaddset(&sigs,SIGINT); + sigaddset(&sigs,SIGQUIT); + sigaddset(&sigs,SIGABRT); + sigaddset(&sigs,SIGTERM); + sigaddset(&sigs,SIGHUP); + sigaddset(&sigs,SIGALRM); + sigaddset(&sigs,SIGPIPE); pthread_sigmask(SIG_BLOCK,&sigs,NULL); while(1) { sigwait(&sigs,&sig); /* wait here until signaled */ @@ -1363,9 +1371,6 @@ int main(int argc, char** argv) sigaddset(&sigs,SIGHUP); sigaddset(&sigs,SIGALRM); sigaddset(&sigs,SIGPIPE); - sigaddset(&sigs,SIGHUP); - /* Debugging purposes ONLY */ - sigfillset(&sigs); pthread_sigmask(SIG_BLOCK,&sigs,NULL); signal(SIGALRM, SIG_IGN); /* Ignore "Alarm" signal */ _beginthread((void(*)(void*))handle_sigs,0,NULL);