diff options
Diffstat (limited to 'server/server.c')
-rw-r--r-- | server/server.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/server/server.c b/server/server.c index 6a9075c..0017888 100644 --- a/server/server.c +++ b/server/server.c @@ -7,6 +7,7 @@ #include <fcntl.h> #include <syslog.h> #include <time.h> +#include <signal.h> #include "server.h" #include "server_data_processing.h" @@ -14,6 +15,12 @@ #include "card_stack.h" #include "card_queue.h" +void handler(int s) +{ + if(s == SIGPIPE) + signal(SIGPIPE, handler); +} + static void init_session(struct session *new_session, struct sockaddr_in *from, int fd, int player_position) { @@ -958,6 +965,7 @@ int main(int argc, char **argv) srand(time(NULL)); openlog("durak server", 0, LOG_USER); syslog(LOG_INFO, "daemon started"); + signal(SIGPIPE, handler); port = strtol(argv[1], NULL, 10); if(!init_server(&serv, port)) { |