X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Finspircd.cpp;h=f35482f618a975d48373385b31f4cf5edd8fde73;hb=7ae4ca1a238ba7598ce2cd1b3de116cfc7a89588;hp=b6c25210427d450168a98a6b95714bc9842e41b9;hpb=87b1461e2a4710a38b32186c2582da9fe9bb3804;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/inspircd.cpp b/src/inspircd.cpp index b6c252104..f35482f61 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -30,7 +30,6 @@ #include #ifndef _WIN32 - #include #include #include #include @@ -94,8 +93,11 @@ void InspIRCd::Cleanup() } ports.clear(); - // Disconnect all local users + // Tell modules that we're shutting down. const std::string quitmsg = "Server shutting down"; + FOREACH_MOD(OnShutdown, (quitmsg)); + + // Disconnect all local users const UserManager::LocalList& list = Users.GetLocalUsers(); while (!list.empty()) ServerInstance->Users.QuitUser(list.front(), quitmsg); @@ -121,10 +123,11 @@ void InspIRCd::SetSignals() { #ifndef _WIN32 signal(SIGALRM, SIG_IGN); + signal(SIGCHLD, SIG_IGN); signal(SIGHUP, InspIRCd::SetSignal); signal(SIGPIPE, SIG_IGN); - signal(SIGCHLD, SIG_IGN); - /* We want E2BIG not a signal! */ + signal(SIGUSR1, SIG_IGN); + signal(SIGUSR2, SIG_IGN); signal(SIGXFSZ, SIG_IGN); #endif signal(SIGTERM, InspIRCd::SetSignal); @@ -190,9 +193,7 @@ void InspIRCd::WritePID(const std::string& filename, bool exitonfail) return; } - std::string fname(filename); - if (fname.empty()) - fname = ServerInstance->Config->Paths.PrependData("inspircd.pid"); + std::string fname = ServerInstance->Config->Paths.PrependData(filename.empty() ? "inspircd.pid" : filename); std::ofstream outfile(fname.c_str()); if (outfile.is_open()) {