#include <signal.h>
#ifndef _WIN32
- #include <dirent.h>
#include <unistd.h>
#include <sys/resource.h>
#include <dlfcn.h>
}
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);
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())
{