diff options
author | Adam <Adam@anope.org> | 2011-08-29 17:08:26 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-08-29 17:08:26 -0400 |
commit | 1c5ff92c9398c01708158f0a057905ad50a3255c (patch) | |
tree | 004f19d488c0a3dc48459d345200f2290ecd5168 /modules | |
parent | b24ea29bf578e115a3bab71cd33ca2e4672fbfba (diff) |
Changed a few fatal exceptions to shutdown a bit more gracefully
Diffstat (limited to 'modules')
-rw-r--r-- | modules/commands/os_module.cpp | 5 | ||||
-rw-r--r-- | modules/protocol/bahamut.cpp | 7 | ||||
-rw-r--r-- | modules/protocol/inspircd12.cpp | 8 | ||||
-rw-r--r-- | modules/protocol/inspircd20.cpp | 7 | ||||
-rw-r--r-- | modules/protocol/plexus.cpp | 7 | ||||
-rw-r--r-- | modules/protocol/ratbox.cpp | 8 | ||||
-rw-r--r-- | modules/protocol/unreal.cpp | 8 |
7 files changed, 49 insertions, 1 deletions
diff --git a/modules/commands/os_module.cpp b/modules/commands/os_module.cpp index 562e130aa..750a29bfa 100644 --- a/modules/commands/os_module.cpp +++ b/modules/commands/os_module.cpp @@ -111,7 +111,10 @@ class CommandOSModReLoad : public Command else { if (fatal) - throw FatalException("Unable to reload module " + mname); + { + quitmsg = "Unable to reload module " + mname; + quitting = true; + } else source.Reply(_("Unable to load module \002%s\002"), mname.c_str()); } diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index 880d10a3a..796e021e1 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -572,6 +572,13 @@ class ProtoBahamut : public Module ModuleManager::Attach(I_OnUserNickChange, this); } + ~ProtoBahamut() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + void OnUserNickChange(User *u, const Anope::string &) { u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED)); diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index c0c4a0bde..a2e0e0920 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -758,6 +758,14 @@ class ProtoInspIRCd : public Module ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } + ~ProtoInspIRCd() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + + void OnUserNickChange(User *u, const Anope::string &) { /* InspIRCd 1.2 doesn't set -r on nick change, remove -r here. Note that if we have to set +r later diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index 0edcc94a7..f210525c5 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -754,6 +754,13 @@ class ProtoInspIRCd : public Module ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } + ~ProtoInspIRCd() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + void OnUserNickChange(User *u, const Anope::string &) { u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED)); diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index 9947d02ab..fd6379fc9 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -658,6 +658,13 @@ class ProtoPlexus : public Module ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } + ~ProtoPlexus() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + void OnServerSync(Server *s) { if (nickserv) diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index 516452ce5..c47189736 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -598,6 +598,14 @@ class ProtoRatbox : public Module ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation)); } + ~ProtoRatbox() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + + void OnServerSync(Server *s) { if (nickserv) diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index 902309267..38b9da82b 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -1138,6 +1138,14 @@ class ProtoUnreal : public Module ModuleManager::Attach(I_OnUserNickChange, this); } + ~ProtoUnreal() + { + pmodule_ircd_var(NULL); + pmodule_ircd_proto(NULL); + pmodule_ircd_message(NULL); + } + + void OnUserNickChange(User *u, const Anope::string &) { u->RemoveModeInternal(ModeManager::FindUserModeByName(UMODE_REGISTERED)); |