X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fsignal.c;h=175f61150db18ba33863ba979eef4d3953be9eef;hb=291f15058a67b95bdfe6f6861cdfcb8ffd626149;hp=37f66f38671d98cf9f9a911963e7bb96ad26e905;hpb=78e040af3fcc36ab684611c0f98b4381ff420878;p=NeonServV5.git diff --git a/src/signal.c b/src/signal.c index 37f66f3..175f611 100644 --- a/src/signal.c +++ b/src/signal.c @@ -18,6 +18,7 @@ #include "bots.h" #include "ChanNode.h" #include "ClientSocket.h" +#include "IOHandler.h" #include "ConfigParser.h" static void sigcrash(); @@ -85,8 +86,9 @@ static void sigcrash(int signum) { struct ClientSocket *bot; for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) { if((bot->flags & SOCKET_FLAG_CONNECTED)) { - close(bot->sock); - bot->flags &= SOCKET_FLAG_CONNECTED; + iohandler_close(bot->iofd); + bot->flags &= ~(SOCKET_FLAG_CONNECTED | SOCKET_FLAG_READY); + bot->iofd = NULL; } } putlog(LOGLEVEL_INFO, "hard shutdown...\n");