summaryrefslogtreecommitdiff
path: root/src/modules/m_shun.cpp
diff options
context:
space:
mode:
authorB00mX0r <b00mx0r@aureus.pw>2017-12-19 09:29:50 -0800
committerB00mX0r <b00mx0r@aureus.pw>2017-12-21 09:21:53 -0800
commit197c3445b04f16dd563426fb606c848f20f77c96 (patch)
tree76b3c400dd44945f212a98a0da73bae7d1809f73 /src/modules/m_shun.cpp
parenta98ae6f6716597572a2797b00f4e3a4a5d7e52d7 (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.cpp40
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
*/