diff options
author | Sebastian Schmelzer | 2011-12-03 13:31:09 +0100 |
---|---|---|
committer | Sebastian Schmelzer | 2011-12-03 13:31:09 +0100 |
commit | 1b48532c662470f5dd4090d47e1e2c333e967caf (patch) | |
tree | 8c23d3eca5fa088b91887d528138b9e0462382fb /src/customdhcpcd/signal.c | |
parent | let cmake find qxt (diff) | |
download | fbgui-1b48532c662470f5dd4090d47e1e2c333e967caf.tar.gz fbgui-1b48532c662470f5dd4090d47e1e2c333e967caf.tar.xz fbgui-1b48532c662470f5dd4090d47e1e2c333e967caf.zip |
codeformating, change to log4cxx
Diffstat (limited to 'src/customdhcpcd/signal.c')
-rw-r--r-- | src/customdhcpcd/signal.c | 216 |
1 files changed, 112 insertions, 104 deletions
diff --git a/src/customdhcpcd/signal.c b/src/customdhcpcd/signal.c index 9055c9f..297d8b2 100644 --- a/src/customdhcpcd/signal.c +++ b/src/customdhcpcd/signal.c @@ -1,4 +1,4 @@ -/* +/* * dhcpcd - DHCP client daemon * Copyright 2006-2008 Roy Marples <roy@marples.name> * All rights reserved @@ -40,44 +40,45 @@ static int signal_pipe[2]; static int signals[5]; -static const int handle_sigs[] = { - SIGHUP, - SIGALRM, - SIGTERM, - SIGINT +static const int handle_sigs[] = +{ + SIGHUP, + SIGALRM, + SIGTERM, + SIGINT }; static void signal_handler (int sig) { - unsigned int i = 0; - int serrno = errno; - - /* Add a signal to our stack */ - while (signals[i]) - i++; - if (i > sizeof (signals) / sizeof (signals[0])) - logger (LOG_ERR, "signal buffer overrun"); - else - signals[i] = sig; - - if (write (signal_pipe[1], &sig, sizeof (sig)) == -1) - logger (LOG_ERR, "Could not send signal: %s", strerror (errno)); - - /* Restore errno */ - errno = serrno; + unsigned int i = 0; + int serrno = errno; + + /* Add a signal to our stack */ + while (signals[i]) + i++; + if (i > sizeof (signals) / sizeof (signals[0])) + logger (LOG_ERR, "signal buffer overrun"); + else + signals[i] = sig; + + if (write (signal_pipe[1], &sig, sizeof (sig)) == -1) + logger (LOG_ERR, "Could not send signal: %s", strerror (errno)); + + /* Restore errno */ + errno = serrno; } int signal_fd (void) { - return (signal_pipe[0]); + return (signal_pipe[0]); } /* Check if we have a signal or not */ int signal_exists (const struct pollfd *fd) { - if (signals[0] || (fd && fd->revents & POLLIN)) - return (0); - return (-1); + if (signals[0] || (fd && fd->revents & POLLIN)) + return (0); + return (-1); } /* Read a signal from the signal pipe. Returns 0 if there is @@ -85,99 +86,106 @@ int signal_exists (const struct pollfd *fd) * your signal on success */ int signal_read (struct pollfd *fd) { - int sig = -1; - - /* Pop a signal off the our stack */ - if (signals[0]) { - unsigned int i = 0; - sig = signals[0]; - while (i < (sizeof (signals) / sizeof (signals[0])) - 1) { - signals[i] = signals[i + 1]; - if (! signals[++i]) - break; - } - } - - if (fd && fd->revents & POLLIN) { - char buf[16]; - size_t bytes; - - memset (buf, 0, sizeof (buf)); - bytes = read (signal_pipe[0], buf, sizeof (buf)); - - if (bytes >= sizeof (sig)) - memcpy (&sig, buf, sizeof (sig)); - - /* We need to clear us from rset if nothing left in the buffer - * in case we are called many times */ - if (bytes == sizeof (sig)) - fd->revents = 0; - } - - return (sig); + int sig = -1; + + /* Pop a signal off the our stack */ + if (signals[0]) + { + unsigned int i = 0; + sig = signals[0]; + while (i < (sizeof (signals) / sizeof (signals[0])) - 1) + { + signals[i] = signals[i + 1]; + if (! signals[++i]) + break; + } + } + + if (fd && fd->revents & POLLIN) + { + char buf[16]; + size_t bytes; + + memset (buf, 0, sizeof (buf)); + bytes = read (signal_pipe[0], buf, sizeof (buf)); + + if (bytes >= sizeof (sig)) + memcpy (&sig, buf, sizeof (sig)); + + /* We need to clear us from rset if nothing left in the buffer + * in case we are called many times */ + if (bytes == sizeof (sig)) + fd->revents = 0; + } + + return (sig); } /* Call this before doing anything else. Sets up the socket pair * and installs the signal handler */ int signal_init (void) { - struct sigaction sa; - - if (pipe (signal_pipe) == -1) { - logger (LOG_ERR, "pipe: %s", strerror (errno)); - return (-1); - } - - /* Stop any scripts from inheriting us */ - close_on_exec (signal_pipe[0]); - close_on_exec (signal_pipe[1]); - - /* Ignore child signals and don't make zombies. - * Because we do this, we don't need to be in signal_setup */ - memset (&sa, 0, sizeof (sa)); - sa.sa_handler = SIG_DFL; - sa.sa_flags = SA_NOCLDSTOP | SA_NOCLDWAIT; - if (sigaction (SIGCHLD, &sa, NULL) == -1) { - logger (LOG_ERR, "sigaction: %s", strerror (errno)); - return (-1); - } - - memset (signals, 0, sizeof (signals)); - return (0); + struct sigaction sa; + + if (pipe (signal_pipe) == -1) + { + logger (LOG_ERR, "pipe: %s", strerror (errno)); + return (-1); + } + + /* Stop any scripts from inheriting us */ + close_on_exec (signal_pipe[0]); + close_on_exec (signal_pipe[1]); + + /* Ignore child signals and don't make zombies. + * Because we do this, we don't need to be in signal_setup */ + memset (&sa, 0, sizeof (sa)); + sa.sa_handler = SIG_DFL; + sa.sa_flags = SA_NOCLDSTOP | SA_NOCLDWAIT; + if (sigaction (SIGCHLD, &sa, NULL) == -1) + { + logger (LOG_ERR, "sigaction: %s", strerror (errno)); + return (-1); + } + + memset (signals, 0, sizeof (signals)); + return (0); } int signal_setup (void) { - unsigned int i; - struct sigaction sa; - - memset (&sa, 0, sizeof (sa)); - sa.sa_handler = signal_handler; - sigemptyset (&sa.sa_mask); - - for (i = 0; i < sizeof (handle_sigs) / sizeof (handle_sigs[0]); i++) - if (sigaction (handle_sigs[i], &sa, NULL) == -1) { - logger (LOG_ERR, "sigaction: %s", strerror (errno)); - return (-1); - } - - return (0); + unsigned int i; + struct sigaction sa; + + memset (&sa, 0, sizeof (sa)); + sa.sa_handler = signal_handler; + sigemptyset (&sa.sa_mask); + + for (i = 0; i < sizeof (handle_sigs) / sizeof (handle_sigs[0]); i++) + if (sigaction (handle_sigs[i], &sa, NULL) == -1) + { + logger (LOG_ERR, "sigaction: %s", strerror (errno)); + return (-1); + } + + return (0); } int signal_reset (void) { - struct sigaction sa; - unsigned int i; + struct sigaction sa; + unsigned int i; - memset (&sa, 0, sizeof (sa)); - sa.sa_handler = SIG_DFL; - sigemptyset (&sa.sa_mask); + 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) { - logger (LOG_ERR, "sigaction: %s", strerror (errno)); - return (-1); - } + for (i = 0; i < sizeof (handle_sigs) / sizeof (handle_sigs[0]); i++) + if (sigaction (handle_sigs[i], &sa, NULL) == -1) + { + logger (LOG_ERR, "sigaction: %s", strerror (errno)); + return (-1); + } - return (0); + return (0); } |