From 6490c179e7f789a9efb876fa0bdfc195dc374dc5 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Wed, 19 Jun 2024 18:31:01 +0200 Subject: handle signals Signed-off-by: Lizzy Fleckenstein --- src/server.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/server.c') diff --git a/src/server.c b/src/server.c index 621acae..5355620 100644 --- a/src/server.c +++ b/src/server.c @@ -19,6 +19,7 @@ #include "net.h" #include "str.h" #include "ser.h" +#include "sig.h" typedef enum { MAP_VALLEY, @@ -318,6 +319,8 @@ bool handle_pkt(str pkt, player *p, game *g) int main() { + signal_setup(); + game g = {0}; g.accept_fd = -1; @@ -364,11 +367,14 @@ int main() if (poll(fds, g.players.len + 1, -1) < 0) { switch (errno) { - case EINTR: continue; + case EINTR: break; default: perror("poll"); continue; } } + if (signal_stop) + game_exit(&g, EXIT_SUCCESS); + for (size_t i = 0; i < g.players.len; i++) { player *p = &g.players.data[i]; -- cgit v1.2.3