summaryrefslogtreecommitdiff
path: root/src/modules/m_filter.h
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-10 17:04:06 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-10 17:04:06 +0000
commit6692d15462003157768a15c86192399b5b73e3c2 (patch)
tree9384ea59f85dfddb5bc372d067b0022b24883948 /src/modules/m_filter.h
parent74d2f929455e316ab69fcf620b7f9bc792f5e716 (diff)
Add gline type, and <filter:duration> value to say how long to ban for.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5666 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_filter.h')
-rw-r--r--src/modules/m_filter.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/modules/m_filter.h b/src/modules/m_filter.h
index 34e3d2513..b2c3816a8 100644
--- a/src/modules/m_filter.h
+++ b/src/modules/m_filter.h
@@ -14,13 +14,16 @@
* ---------------------------------------------------
*/
+#include "xline.h"
+
class FilterResult : public classbase
{
public:
std::string reason;
std::string action;
+ long gline_time;
- FilterResult(const std::string &rea, const std::string &act) : reason(rea), action(act)
+ FilterResult(const std::string &rea, const std::string &act, long gt) : reason(rea), action(act), gline_time(gt)
{
}
@@ -85,6 +88,15 @@ class FilterBase : public Module
{
userrec::QuitUser(ServerInstance,user,f->reason);
}
+
+ if (f->action == "gline")
+ {
+ if (ServerInstance->XLines->add_gline(f->gline_time, ServerInstance->Config->ServerName, f->reason.c_str(), user->MakeHostIP()))
+ {
+ ServerInstance->XLines->apply_lines(APPLY_GLINES);
+ FOREACH_MOD(I_OnAddGLine,OnAddGLine(f->gline_time, NULL, f->reason, user->MakeHostIP()));
+ }
+ }
return 1;
}
return 0;