summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-30 22:11:13 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-30 22:11:13 +0000
commit8982ea4cf5adc493340e602e2c3290210c7bf110 (patch)
treecd08dbcf784f2f86fb3844797d9e8e8ae239550a /src
parent8fbec0a6c8e23c9274c789946e2376bbeba6ece7 (diff)
If a user has a QUIT message matching a KILL type filter, we cant KILL someone whos already quitting (what will they care) so treat it as BLOCK and filter their quit.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6185 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_filter.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/modules/m_filter.h b/src/modules/m_filter.h
index ec95431fa..ba52ce70b 100644
--- a/src/modules/m_filter.h
+++ b/src/modules/m_filter.h
@@ -254,7 +254,10 @@ int FilterBase::OnPreCommand(const std::string &command, const char** parameters
params[item] = parameters[item];
params[replacepoint] = "Reason filtered";
- if (f->action == "block")
+ /* We're blocking, OR theyre quitting and its a KILL action
+ * (we cant kill someone whos already quitting, so filter them anyway)
+ */
+ if ((f->action == "block") || (((!parting) && (f->action == "kill"))))
{
c->Handle(params, pcnt, user);
return 1;