19 #include "sighandler.h"
32 #define MAIN_ERR_PREFIX "MAIN: "
39 static volatile api_posix_sig_atomic_t sighandler_abort = 0;
45 static void sighandler_handler(
int signum)
72 api_posix_struct_sigaction sa;
74 api_posix_sigemptyset(&sa.sa_mask);
78 sa.sa_handler = sighandler_handler;
79 rv = api_posix_sigaction(API_POSIX_SIGINT, &sa,
80 (api_posix_struct_sigaction*) NULL);
83 rv = api_posix_sigaction(API_POSIX_SIGQUIT, &sa,
84 (api_posix_struct_sigaction*) NULL);
88 rv = api_posix_sigaction(API_POSIX_SIGTERM, &sa,
89 (api_posix_struct_sigaction*) NULL);
93 sa.sa_handler = API_POSIX_SIG_IGN;
96 rv = api_posix_sigaction(API_POSIX_SIGHUP, &sa,
97 (api_posix_struct_sigaction*) NULL);
101 rv = api_posix_sigaction(API_POSIX_SIGPIPE, &sa,
102 (api_posix_struct_sigaction*) NULL);
108 PRINT_ERROR(
"Installation of signal handlers failed");
130 api_posix_struct_sigaction sa;
132 api_posix_sigemptyset(&sa.sa_mask);
136 sa.sa_handler = API_POSIX_SIG_DFL;
137 rv = api_posix_sigaction(API_POSIX_SIGHUP, &sa,
138 (api_posix_struct_sigaction*) NULL);
141 rv = api_posix_sigaction(API_POSIX_SIGPIPE, &sa,
142 (api_posix_struct_sigaction*) NULL);
148 PRINT_ERROR(
"Restore of default signal handlers failed");
166 return((
int) sighandler_abort);