fixed renameAccount function (merging mode)
[NeonServV5.git] / src / signal.c
index 9acfd2cdbde71374994c438a4f0b32be81b4819f..bc444465089f1b2faa2f5d3ce03366c3ae3c041a 100644 (file)
@@ -1,4 +1,4 @@
-/* signal.c - NeonServ v5.5
+/* signal.c - NeonServ v5.6
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -18,6 +18,7 @@
 #include "bots.h"
 #include "ChanNode.h"
 #include "ClientSocket.h"
+#include "IOHandler.h"
 #include "ConfigParser.h"
 
 static void sigcrash();
@@ -85,20 +86,18 @@ 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);
+            iohandler_close(bot->iofd);
             bot->flags &= ~(SOCKET_FLAG_CONNECTED | SOCKET_FLAG_READY);
+            bot->iofd = NULL;
         }
     }
     putlog(LOGLEVEL_INFO, "hard shutdown...\n");
-    exit_daemon();
     usleep(2000000);
     //hard restart
-    restart_process();
+    restart_bot(1);
     exit(0);
 }
 
 static void sigexit(int signum) {
-    cleanup();
-    exit_daemon();
-    exit(0);
+    stop_bot();
 }