diff options
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_operchans.cpp | 23 | ||||
-rw-r--r-- | src/modules/m_operinvex.cpp | 57 | ||||
-rw-r--r-- | src/modules/m_spanningtree/compat.cpp | 4 | ||||
-rw-r--r-- | src/modules/m_swhois.cpp | 2 |
4 files changed, 24 insertions, 62 deletions
diff --git a/src/modules/m_operchans.cpp b/src/modules/m_operchans.cpp index edafcd071..5fe891b50 100644 --- a/src/modules/m_operchans.cpp +++ b/src/modules/m_operchans.cpp @@ -48,12 +48,12 @@ class ModuleOperChans : public Module { OperChans oc; public: - ModuleOperChans() - : oc(this) + ModuleOperChans() : oc(this) { if (!ServerInstance->Modes->AddMode(&oc)) throw ModuleException("Could not add new modes!"); - ServerInstance->Modules->Attach(I_OnUserPreJoin, this); + Implementation eventlist[] = { I_OnCheckBan, I_On005Numeric, I_OnUserPreJoin }; + ServerInstance->Modules->Attach(eventlist, this, 3); } ModResult OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven) @@ -67,6 +67,21 @@ class ModuleOperChans : public Module return MOD_RES_PASSTHRU; } + ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) + { + if (mask[0] == 'O' && mask[1] == ':') + { + if (IS_OPER(user) && InspIRCd::Match(user->oper, mask.substr(2))) + return MOD_RES_DENY; + } + return MOD_RES_PASSTHRU; + } + + void On005Numeric(std::string &output) + { + ServerInstance->AddExtBanChar('O'); + } + ~ModuleOperChans() { ServerInstance->Modes->DelMode(&oc); @@ -74,7 +89,7 @@ class ModuleOperChans : public Module Version GetVersion() { - return Version("Provides support for oper-only chans via the +O channel mode", VF_VENDOR | VF_COMMON, API_VERSION); + return Version("Provides support for oper-only chans via the +O channel mode and 'O' extban", VF_VENDOR | VF_COMMON, API_VERSION); } }; diff --git a/src/modules/m_operinvex.cpp b/src/modules/m_operinvex.cpp deleted file mode 100644 index e8e9215b4..000000000 --- a/src/modules/m_operinvex.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ - * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits - * - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - */ - -#include "inspircd.h" -#include "u_listmode.h" - -/* $ModDep: ../../include/u_listmode.h */ - -/* $ModDesc: Implements extban/invex +I O: - opertype bans */ - -class ModuleOperInvex : public Module -{ - private: - public: - ModuleOperInvex() { - Implementation eventlist[] = { I_OnCheckBan, I_On005Numeric }; - ServerInstance->Modules->Attach(eventlist, this, 2); - } - - ~ModuleOperInvex() - { - } - - Version GetVersion() - { - return Version("ExtBan 'O' - oper type ban", VF_COMMON|VF_VENDOR); - } - - ModResult OnCheckBan(User *user, Channel *c, const std::string& mask) - { - if (mask[0] == 'O' && mask[1] == ':') - { - if (IS_OPER(user) && InspIRCd::Match(user->oper, mask.substr(2))) - return MOD_RES_DENY; - } - return MOD_RES_PASSTHRU; - } - - virtual void On005Numeric(std::string &output) - { - ServerInstance->AddExtBanChar('O'); - } -}; - - -MODULE_INIT(ModuleOperInvex) - diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp index 3724319b7..6d804aa71 100644 --- a/src/modules/m_spanningtree/compat.cpp +++ b/src/modules/m_spanningtree/compat.cpp @@ -25,6 +25,7 @@ static const char* const forge_common_1201[] = { "m_sapart.so", "m_saquit.so", "m_setident.so", + "m_swhois.so", }; static std::string wide_newline("\r\n"); @@ -40,6 +41,9 @@ void TreeSocket::CompatAddModules(std::vector<std::string>& modlist) if (ServerInstance->Modules->Find(forge_common_1201[i])) modlist.push_back(forge_common_1201[i]); } + // module was merged + if (ServerInstance->Modules->Find("m_operchans.so")) + modlist.push_back("m_operinvex.so"); } } diff --git a/src/modules/m_swhois.cpp b/src/modules/m_swhois.cpp index 4465b0c89..6d74e9d39 100644 --- a/src/modules/m_swhois.cpp +++ b/src/modules/m_swhois.cpp @@ -146,7 +146,7 @@ class ModuleSWhois : public Module Version GetVersion() { - return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_COMMON | VF_VENDOR, API_VERSION); + return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_OPTCOMMON | VF_VENDOR, API_VERSION); } }; |