diff options
author | Adam <Adam@anope.org> | 2017-06-24 16:09:30 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2017-06-24 16:09:30 -0400 |
commit | 8133bcaf48bb6a678bc17a9373cc59a97b68a74e (patch) | |
tree | d7af06a6f44eacf35b6c678f79d934857cfd7285 /src/modulemanager.cpp | |
parent | 2b6c5833bb6cd6b1e21bb66a0ebbc6a6e3e86767 (diff) |
modulemanager: debug log if module is still loaded after dlclose
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r-- | src/modulemanager.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 661519ca4..18dbe1131 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -356,10 +356,11 @@ ModuleReturn ModuleManager::DeleteModule(Module *m) Serialize::Unregister(m); + Anope::string name = m->name; void *handle = m->handle; Anope::string filename = m->filename; - Anope::Logger.Log("Unloading module {0}", m->name); + Anope::Logger.Log("Unloading module {0}", name); ModuleDef *def = m->def; AnopeModule *module = m->module; @@ -371,6 +372,13 @@ ModuleReturn ModuleManager::DeleteModule(Module *m) if (dlclose(handle)) Anope::Logger.Log(dlerror()); + handle = dlopen(filename.c_str(), RTLD_NOLOAD); + if (handle != nullptr) + { + Anope::Logger.Debug("Unloaded module {0} but module is still loaded", name); + dlclose(handle); + } + #ifdef _WIN32 if (!filename.empty()) unlink(filename.c_str()); |