X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2Fsignal.c;h=4e8f9a5d72f7a2a85ba77d186f549e5fd1e833a8;hp=24e399d6490ade57b73a94ac9573944e6ce7b3a7;hb=HEAD;hpb=1471e99b8b975135cf4f66c0e497d4a5ded7ed77 diff --git a/src/signal.c b/src/signal.c index 24e399d..4e8f9a5 100644 --- a/src/signal.c +++ b/src/signal.c @@ -20,12 +20,13 @@ #include "ClientSocket.h" #include "IOHandler.h" #include "ConfigParser.h" +#include "log.h" static void sigcrash(); static void sigexit(); void sighandler(int signum) { - putlog(LOGLEVEL_INFO, "Received Signal %d\n", signum); + printf_log("main", LOG_INFO, "Received Signal %d\n", signum); signal(signum, SIG_DFL); switch(signum) { case SIGABRT: @@ -66,22 +67,14 @@ static void sigcrash(int signum) { signame = "SIGUNKNOWN"; break; } - putlog(LOGLEVEL_ERROR, "NeonServ process crashed (%s)\n", signame); + printf_log("main", LOG_ERROR, "NeonServ process crashed (%s)\n", signame); #ifndef WIN32 char gcore[50]; sprintf(gcore, "gcore %u", getpid()); int sysretn = system(gcore); //generate core file sprintf(coregen, "core file generated. (%d)", sysretn); - putlog(LOGLEVEL_ERROR | LOGLEVEL_INFO, "generated core file.\n"); + printf_log("main", LOG_ERROR | LOG_INFO, "generated core file.\n"); #endif - char *alertchan = get_string_field("General.alertchan"); - if(alertchan) { - struct ChanNode *channel = getChanByName(alertchan); - struct ClientSocket *client; - if(channel && (client = getChannelBot(channel, 0))) { - putsock(client, "PRIVMSG %s :\00304NeonServ received signal %d (%s). %s", alertchan, signum, signame, coregen); - } - } //close all bots struct ClientSocket *bot; for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) { @@ -91,16 +84,13 @@ static void sigcrash(int signum) { bot->iofd = NULL; } } - putlog(LOGLEVEL_INFO, "hard shutdown...\n"); - exit_daemon(); + printf_log("main", LOG_INFO, "hard shutdown...\n"); usleep(2000000); //hard restart - restart_process(); + restart_bot(1); exit(0); } static void sigexit(int signum) { - cleanup(); - exit_daemon(); - exit(0); + stop_bot(); }