PROG= dhcpcd
VERSION= 4.0.0-beta3
-SRCS= common.c dhcp.c dhcpcd.c logger.c net.c signal.c
+SRCS= common.c dhcp.c dhcpcd.c logger.c net.c signals.c
SRCS+= configure.c client.c
SRCS+= ${SRC_IF} ${SRC_SOCKET}
SCRIPT= dhcpcd.sh
#include <unistd.h>
#include "common.h"
-#include "signal.h"
+#include "signals.h"
static int signal_pipe[2];
static int signals[5];
return 0;
}
-int
-signal_setup(void)
+static int
+_signal_setup(void (*func)(int))
{
unsigned int i;
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
- sa.sa_handler = signal_handler;
+ sa.sa_handler = func;
sigemptyset(&sa.sa_mask);
for (i = 0; i < sizeof(handle_sigs) / sizeof(handle_sigs[0]); i++)
}
int
-signal_reset(void)
+signal_setup(void)
{
- struct sigaction sa;
- unsigned int i;
-
- memset(&sa, 0, sizeof(sa));
- sa.sa_handler = SIG_DFL;
- sigemptyset(&sa.sa_mask);
-
- for (i = 0; i < sizeof(handle_sigs) / sizeof(handle_sigs[0]); i++)
- if (sigaction(handle_sigs[i], &sa, NULL) == -1)
- return -1;
+ return _signal_setup(signal_handler);
+}
- return 0;
+int
+signal_reset(void)
+{
+ return _signal_setup(SIG_DFL);
}