diff options
author | attilamolnar <attilamolnar@hush.com> | 2012-06-24 16:05:35 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2012-07-07 15:13:09 +0200 |
commit | 9f6ad08f77912bcce3c22c31744586d811631d92 (patch) | |
tree | c60824089611da5bc6abcebbf5741b3937abd1e5 /src | |
parent | 3ac4e6956d4ec4c976aef19772b65e7108d6315a (diff) |
m_inviteexception Read invitebypasskey setting once and store it instead of reading it at every invite check
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_inviteexception.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp index 1ecec735e..33c82fa0a 100644 --- a/src/modules/m_inviteexception.cpp +++ b/src/modules/m_inviteexception.cpp @@ -47,6 +47,7 @@ class InviteException : public ListModeBase class ModuleInviteException : public Module { + bool invite_bypass_key; InviteException ie; public: ModuleInviteException() : ie(this) @@ -54,9 +55,10 @@ public: if (!ServerInstance->Modes->AddMode(&ie)) throw ModuleException("Could not add new modes!"); + OnRehash(NULL); ie.DoImplements(this); - Implementation eventlist[] = { I_On005Numeric, I_OnCheckInvite, I_OnCheckKey }; - ServerInstance->Modules->Attach(eventlist, this, 3); + Implementation eventlist[] = { I_On005Numeric, I_OnCheckInvite, I_OnCheckKey, I_OnRehash }; + ServerInstance->Modules->Attach(eventlist, this, 4); } void On005Numeric(std::string &output) @@ -86,7 +88,7 @@ public: ModResult OnCheckKey(User* user, Channel* chan, const std::string& key) { - if (ServerInstance->Config->ConfValue("inviteexception")->getBool("bypasskey", true)) + if (invite_bypass_key) return OnCheckInvite(user, chan); return MOD_RES_PASSTHRU; } @@ -103,6 +105,7 @@ public: void OnRehash(User* user) { + invite_bypass_key = ServerInstance->Config->ConfValue("inviteexception")->getBool("bypasskey", true); ie.DoRehash(); } |