summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-09-24 23:53:30 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-09-24 23:53:30 +0000
commit9b67d07930a24690d775eb414666f7a75c38ec11 (patch)
treef9e79049f48d630c08793b18fc6be4c0d6f85661
parent3c8a979106eace6acb712f7f5a7ee982dad61bd4 (diff)
Final part of fix for #419
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8072 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/cmd_kill.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/cmd_kill.cpp b/src/cmd_kill.cpp
index 1b8a10b51..1d58ea419 100644
--- a/src/cmd_kill.cpp
+++ b/src/cmd_kill.cpp
@@ -95,9 +95,19 @@ CmdResult cmd_kill::Handle (const char** parameters, int pcnt, userrec *user)
*/
ServerInstance->SNO->WriteToSnoMask('k',"Local Kill by %s: %s!%s@%s (%s)", user->nick, u->nick, u->ident, u->host, parameters[1]);
ServerInstance->Log(DEFAULT,"LOCAL KILL: %s :%s!%s!%s (%s)", u->nick, ServerInstance->Config->ServerName, user->dhost, user->nick, parameters[1]);
- u->Write(":%s KILL %s :%s!%s!%s (%s)", *ServerInstance->Config->HideKillsServer ? ServerInstance->Config->HideKillsServer : user->GetFullHost(),
- u->nick, ServerInstance->Config->ServerName, user->dhost,
- *ServerInstance->Config->HideKillsServer ? ServerInstance->Config->HideKillsServer : user->nick, parameters[1]);
+ /* Bug #419, make sure this message can only occur once even in the case of multiple KILL messages crossing the network, and change to show
+ * hidekillsserver as source if possible
+ */
+ if (!u->muted)
+ {
+ u->Write(":%s KILL %s :%s!%s!%s (%s)", *ServerInstance->Config->HideKillsServer ? ServerInstance->Config->HideKillsServer : user->GetFullHost(),
+ u->nick,
+ ServerInstance->Config->ServerName,
+ user->dhost,
+ *ServerInstance->Config->HideKillsServer ? ServerInstance->Config->HideKillsServer : user->nick,
+ parameters[1]);
+ u->muted = true;
+ }
}
// send the quit out