diff options
| author | 2012-12-02 19:40:33 +0100 | |
|---|---|---|
| committer | 2012-12-02 19:43:20 +0100 | |
| commit | eea9343393614f81169eaf9ac1fcab1db949d018 (patch) | |
| tree | a9c71e85998d0fe532efbe8fdd1f2cd7104cb920 /src/modules.cpp | |
| parent | Register a few extensions that weren't registered (diff) | |
| download | inspircd++-eea9343393614f81169eaf9ac1fcab1db949d018.tar.gz inspircd++-eea9343393614f81169eaf9ac1fcab1db949d018.tar.bz2 inspircd++-eea9343393614f81169eaf9ac1fcab1db949d018.zip | |
Throw an exception when attempting to register an extension with a name that already exists
Previously this silently failed
Diffstat (limited to 'src/modules.cpp')
| -rw-r--r-- | src/modules.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/modules.cpp b/src/modules.cpp index 1f135176c..4e4d20c70 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -448,7 +448,8 @@ void ModuleManager::AddService(ServiceProvider& item) throw ModuleException("Mode "+std::string(item.name)+" already exists."); return; case SERVICE_METADATA: - ServerInstance->Extensions.Register(static_cast<ExtensionItem*>(&item)); + if (!ServerInstance->Extensions.Register(static_cast<ExtensionItem*>(&item))) + throw ModuleException("Extension " + std::string(item.name) + " already exists."); return; case SERVICE_DATA: case SERVICE_IOHOOK: |
