| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/server/server_signal.c')
| -rw-r--r-- | src/server/server_signal.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/server/server_signal.c b/src/server/server_signal.c new file mode 100644 index 0000000..97137e8 --- /dev/null +++ b/src/server/server_signal.c @@ -0,0 +1,41 @@ +#include <signal.h> +#include <string.h> +#include <stdio.h> + +#include "server.h" + +static volatile char ZoO_SERVER_IS_RUNNING = (char) 1; + +static void request_termination (int const signo) +{ + if ((signo == SIGINT) || (signo == SIGTERM)) + { + ZoO_server_request_termination(); + } +} + +void ZoO_server_request_termination (void) +{ + ZoO_SERVER_IS_RUNNING = (char) 0; +} + +int ZoO_server_is_running (void) +{ + return (int) ZoO_SERVER_IS_RUNNING; +} + +int ZoO_server_set_signal_handlers (void) +{ + struct sigaction act; + + /* + act.sa_handler = request_termination; + act.sa_mask = + act.sa_flags = + act.sa_restorer = + */ + + /* TODO */ + + return -1; +} |


