diff options
author | scratko <m@scratko.xyz> | 2024-08-30 12:46:56 +0300 |
---|---|---|
committer | scratko <m@scratko.xyz> | 2024-08-30 14:59:44 +0300 |
commit | 831f9f01fbe4088eb6bd378c0e417d9996b676fd (patch) | |
tree | 53297459d35ad795618c351a79b1829776e5e1f4 /server/server.c | |
parent | 4b6c15f780d59895f067383a5041edcfe86f504e (diff) | |
download | durak-831f9f01fbe4088eb6bd378c0e417d9996b676fd.tar.gz durak-831f9f01fbe4088eb6bd378c0e417d9996b676fd.tar.bz2 durak-831f9f01fbe4088eb6bd378c0e417d9996b676fd.zip |
Final version v2.0
Added windows client.
SIGPIPE signal was being sent to the server when the client was disconnected.
Now there is handling of this signal.
Added a delay when displaying some informational messages.
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)) { |