inspircd

A modular C++ IRC daemon (ircd). https://www.inspircd.org/
Log | Files | Refs | README

commit 01451ab26ef427267effead17d526d2b20fd3e8b
parent bf046f87c8d322939c6a883a405056003b8b1abd
Author: Peter Powell <petpow@saberuk.com>
Date:   Tue,  5 Feb 2019 17:26:19 +0000

Quit users during cleanup instead of when /DIE is executed.

Diffstat:
Msrc/coremods/core_oper/cmd_die.cpp | 9---------
Msrc/inspircd.cpp | 6++++++
2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/coremods/core_oper/cmd_die.cpp b/src/coremods/core_oper/cmd_die.cpp @@ -30,14 +30,6 @@ CommandDie::CommandDie(Module* parent, std::string& hashref) syntax = "<server>"; } -static void QuitAll() -{ - const std::string quitmsg = "Server shutdown"; - const UserManager::LocalList& list = ServerInstance->Users.GetLocalUsers(); - while (!list.empty()) - ServerInstance->Users.QuitUser(list.front(), quitmsg); -} - void DieRestart::SendError(const std::string& message) { ClientProtocol::Messages::Error errormsg(message); @@ -70,7 +62,6 @@ CmdResult CommandDie::Handle(User* user, const Params& parameters) DieRestart::SendError(diebuf); } - QuitAll(); ServerInstance->Exit(EXIT_STATUS_DIE); } else diff --git a/src/inspircd.cpp b/src/inspircd.cpp @@ -94,6 +94,12 @@ void InspIRCd::Cleanup() } ports.clear(); + // Disconnect all local users + const std::string quitmsg = "Server shutting down"; + const UserManager::LocalList& list = Users.GetLocalUsers(); + while (!list.empty()) + ServerInstance->Users.QuitUser(list.front(), quitmsg); + GlobalCulls.Apply(); Modules->UnloadAll();