Replace deprecated siginterrupt usage with sigaction
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include "net.h"
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#if !CALL_NWCONN_OVER_SOCKET
|
||||
#include <sys/ipc.h>
|
||||
@@ -464,14 +465,26 @@ static void sig_child(int isig)
|
||||
|
||||
static void set_sig(void)
|
||||
{
|
||||
signal(SIGQUIT, sig_quit);
|
||||
struct sigaction sa_quit;
|
||||
struct sigaction sa_child;
|
||||
|
||||
memset(&sa_quit, 0, sizeof(sa_quit));
|
||||
sa_quit.sa_handler = sig_quit;
|
||||
sigemptyset(&sa_quit.sa_mask);
|
||||
sa_quit.sa_flags = 0; /* no SA_RESTART */
|
||||
|
||||
memset(&sa_child, 0, sizeof(sa_child));
|
||||
sa_child.sa_handler = sig_child;
|
||||
sigemptyset(&sa_child.sa_mask);
|
||||
sa_child.sa_flags = 0; /* no SA_RESTART */
|
||||
|
||||
sigaction(SIGQUIT, &sa_quit, NULL);
|
||||
sigaction(SIGCHLD, &sa_child, NULL);
|
||||
|
||||
signal(SIGTERM, SIG_IGN);
|
||||
signal(SIGINT, SIG_IGN);
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
signal(SIGCHLD, sig_child);
|
||||
signal(SIGHUP, SIG_IGN);
|
||||
siginterrupt(SIGQUIT, 1);
|
||||
siginterrupt(SIGCHLD, 1);
|
||||
}
|
||||
|
||||
static int xread(IPX_DATA *ipxd, int *offs, uint8 *data, int size)
|
||||
|
||||
18
src/nwbind.c
18
src/nwbind.c
@@ -33,6 +33,7 @@
|
||||
|
||||
|
||||
#include "net.h"
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include "nwdbm.h"
|
||||
#include "unxlog.h"
|
||||
@@ -2091,15 +2092,20 @@ static void sig_handler(int isig)
|
||||
|
||||
static void set_sig(void)
|
||||
{
|
||||
signal(SIGQUIT, sig_handler);
|
||||
signal(SIGHUP, sig_handler);
|
||||
signal(SIGUSR2, sig_handler);
|
||||
struct sigaction sa;
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = sig_handler;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0; /* no SA_RESTART */
|
||||
|
||||
sigaction(SIGQUIT, &sa, NULL);
|
||||
sigaction(SIGHUP, &sa, NULL);
|
||||
sigaction(SIGUSR2, &sa, NULL);
|
||||
|
||||
signal(SIGTERM, SIG_IGN);
|
||||
signal(SIGINT, SIG_IGN);
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
siginterrupt(SIGQUIT, 1);
|
||||
siginterrupt(SIGHUP, 1);
|
||||
siginterrupt(SIGUSR2, 1);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
||||
Reference in New Issue
Block a user