summaryrefslogtreecommitdiff
path: root/src/modulemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r--src/modulemanager.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp
index 3d22fb50a..3ff8835f6 100644
--- a/src/modulemanager.cpp
+++ b/src/modulemanager.cpp
@@ -221,13 +221,15 @@ int ModuleManager::LoadModule(const std::string &modname, User * u)
if (m->type == PROTOCOL && protocolModuleLoaded())
{
+ delete m;
alog("You cannot load two protocol modules");
- ret = MOD_STOP;
+ return MOD_STOP;
}
else if (m->type == ENCRYPTION && encryptionModuleLoaded())
{
+ delete m;
alog("You cannot load two encryption modules");
- ret = MOD_STOP;
+ return MOD_STOP;
}
mod_current_module_name = NULL;
@@ -237,7 +239,7 @@ int ModuleManager::LoadModule(const std::string &modname, User * u)
ircdproto->SendGlobops(s_OperServ, "%s loaded module %s", u->nick, modname.c_str());
notice_lang(s_OperServ, u, OPER_MODULE_LOADED, modname.c_str());
}
- addModule(m);
+
return MOD_ERR_OK;
}
@@ -263,7 +265,7 @@ int ModuleManager::UnloadModule(Module * m, User * u)
notice_lang(s_OperServ, u, OPER_MODULE_UNLOADED, m->name.c_str());
}
- delModule(m);
+ delete m;
return MOD_ERR_OK;
}