summaryrefslogtreecommitdiff
path: root/src/modules/m_services.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-28 16:55:50 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-28 16:55:50 +0000
commit67878d628c15f2adec41b6d3b266830a636c2ed0 (patch)
treebf981b6f291ff9c276a2020a673281c05b4f75ba /src/modules/m_services.cpp
parentead232e19a2b9d6bee36bb97a0dc9f3975f1e3a0 (diff)
Reasonably sized fix - when adding modes in modules, be sure to check the return value so we dont load two modules with conflicting modes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6137 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_services.cpp')
-rw-r--r--src/modules/m_services.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp
index bd656b042..1eb089d0c 100644
--- a/src/modules/m_services.cpp
+++ b/src/modules/m_services.cpp
@@ -185,11 +185,13 @@ class ModuleServices : public Module
m3 = new Channel_M(ServerInstance);
m4 = new User_r(ServerInstance);
m5 = new User_R(ServerInstance);
- ServerInstance->AddMode(m1, 'r');
- ServerInstance->AddMode(m2, 'R');
- ServerInstance->AddMode(m3, 'M');
- ServerInstance->AddMode(m4, 'r');
- ServerInstance->AddMode(m5, 'R');
+
+ if (!ServerInstance->AddMode(m1, 'r') || !ServerInstance->AddMode(m2, 'R') || !ServerInstance->AddMode(m3, 'M')
+ || !ServerInstance->AddMode(m4, 'r') || !ServerInstance->AddMode(m5, 'R'))
+ {
+ throw ModuleException("Could not add user and channel modes!");
+ }
+
kludgeme = false;
}