summaryrefslogtreecommitdiff
path: root/src/modules.cpp
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2017-10-18 12:41:37 +0100
committerPeter Powell <petpow@saberuk.com>2017-10-18 12:54:51 +0100
commitee7ac5aaede95eb82ecc948d0e52ad01ddeaa6c9 (patch)
tree434d2420c366a90baeb9e7d315ca3ea16d249d35 /src/modules.cpp
parent3b927b48ccb30619d9ace318b5a7d21f2279abbf (diff)
Clean up OnCleanup.
- Switch to using ExtensionItem::ExtensibleType for the type instead of TargetTypeFlags. - Pass the extensible to OnCleanup as an Extensible pointer instead of a void pointer. - Call OnCleanup for memberships as well as channels and users. - Rewrite event documentation to remove outdated references.
Diffstat (limited to 'src/modules.cpp')
-rw-r--r--src/modules.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index 6d0d3bf94..de2fe96b3 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -126,7 +126,7 @@ void Module::OnChangeIdent(User*, const std::string&) { DetachEvent(I_OnChangeI
void Module::OnAddLine(User*, XLine*) { DetachEvent(I_OnAddLine); }
void Module::OnDelLine(User*, XLine*) { DetachEvent(I_OnDelLine); }
void Module::OnExpireLine(XLine*) { DetachEvent(I_OnExpireLine); }
-void Module::OnCleanup(int, void*) { }
+void Module::OnCleanup(ExtensionItem::ExtensibleType, Extensible*) { }
ModResult Module::OnChannelPreDelete(Channel*) { DetachEvent(I_OnChannelPreDelete); return MOD_RES_PASSTHRU; }
void Module::OnChannelDelete(Channel*) { DetachEvent(I_OnChannelDelete); }
ModResult Module::OnSetAway(User*, const std::string &) { DetachEvent(I_OnSetAway); return MOD_RES_PASSTHRU; }
@@ -375,11 +375,14 @@ void ModuleManager::DoSafeUnload(Module* mod)
{
Channel* chan = c->second;
++c;
- mod->OnCleanup(TYPE_CHANNEL, chan);
+ mod->OnCleanup(ExtensionItem::EXT_CHANNEL, chan);
chan->doUnhookExtensions(items);
const Channel::MemberMap& users = chan->GetUsers();
for (Channel::MemberMap::const_iterator mi = users.begin(); mi != users.end(); ++mi)
+ {
+ mod->OnCleanup(ExtensionItem::EXT_MEMBERSHIP, mi->second);
mi->second->doUnhookExtensions(items);
+ }
}
const user_hash& users = ServerInstance->Users->GetUsers();
@@ -388,7 +391,7 @@ void ModuleManager::DoSafeUnload(Module* mod)
User* user = u->second;
// The module may quit the user (e.g. SSL mod unloading) and that will remove it from the container
++u;
- mod->OnCleanup(TYPE_USER, user);
+ mod->OnCleanup(ExtensionItem::EXT_USER, user);
user->doUnhookExtensions(items);
}