X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodmanager_dynamic.cpp;h=0c63eefcd0cab6f918f8042387bcbf9b354ac86c;hb=9d4004e8d477232c143830508a7a6e41fd2d31b7;hp=9005622603f8d45df04ce87677814f5efe25021c;hpb=88b9ecb6b34d268f0761e6e961408871b6e91376;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modmanager_dynamic.cpp b/src/modmanager_dynamic.cpp index 900562260..0c63eefcd 100644 --- a/src/modmanager_dynamic.cpp +++ b/src/modmanager_dynamic.cpp @@ -88,12 +88,12 @@ bool ModuleManager::Load(const char* filename) { newmod->ModuleSourceFile = filename_str; newmod->ModuleDLLManager = newhandle; - Version v = newmod->GetVersion(); + Modules[filename_str] = newmod; + newmod->init(); + Version v = newmod->GetVersion(); ServerInstance->Logs->Log("MODULE", DEFAULT,"New module introduced: %s (Module version %s)%s", filename, newhandle->GetVersion().c_str(), (!(v.Flags & VF_VENDOR) ? " [3rd Party]" : " [Vendor]")); - - Modules[filename_str] = newmod; } else { @@ -106,6 +106,8 @@ bool ModuleManager::Load(const char* filename) catch (CoreException& modexcept) { // failure in module constructor + if (newmod) + DoSafeUnload(newmod); delete newmod; delete newhandle; LastModuleError = "Unable to load " + filename_str + ": " + modexcept.GetReason();