diff options
author | B00mX0r <b00mx0r@aureus.pw> | 2017-12-19 09:29:50 -0800 |
---|---|---|
committer | B00mX0r <b00mx0r@aureus.pw> | 2017-12-21 09:21:53 -0800 |
commit | 197c3445b04f16dd563426fb606c848f20f77c96 (patch) | |
tree | 76b3c400dd44945f212a98a0da73bae7d1809f73 /src/modules/m_shun.cpp | |
parent | a98ae6f6716597572a2797b00f4e3a4a5d7e52d7 (diff) |
Add SHUN as a /filter action
This resolves #483
Diffstat (limited to 'src/modules/m_shun.cpp')
-rw-r--r-- | src/modules/m_shun.cpp | 40 |
1 files changed, 1 insertions, 39 deletions
diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index d68f58dd4..5b0b42cae 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -22,46 +22,8 @@ #include "inspircd.h" #include "xline.h" +#include "modules/shun.h" -class Shun : public XLine -{ -public: - std::string matchtext; - - Shun(time_t s_time, long d, const std::string& src, const std::string& re, const std::string& shunmask) - : XLine(s_time, d, src, re, "SHUN") - , matchtext(shunmask) - { - } - - bool Matches(User* u) CXX11_OVERRIDE - { - // E: overrides shun - LocalUser* lu = IS_LOCAL(u); - if (lu && lu->exempt) - return false; - - if (InspIRCd::Match(u->GetFullHost(), matchtext) || InspIRCd::Match(u->GetFullRealHost(), matchtext) || InspIRCd::Match(u->nick+"!"+u->ident+"@"+u->GetIPString(), matchtext)) - return true; - - if (InspIRCd::MatchCIDR(u->GetIPString(), matchtext, ascii_case_insensitive_map)) - return true; - - return false; - } - - bool Matches(const std::string& s) CXX11_OVERRIDE - { - if (matchtext == s) - return true; - return false; - } - - const std::string& Displayable() CXX11_OVERRIDE - { - return matchtext; - } -}; /** An XLineFactory specialized to generate shun pointers */ |