diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-09-24 23:53:30 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-09-24 23:53:30 +0000 |
commit | 9b67d07930a24690d775eb414666f7a75c38ec11 (patch) | |
tree | f9e79049f48d630c08793b18fc6be4c0d6f85661 /src | |
parent | 3c8a979106eace6acb712f7f5a7ee982dad61bd4 (diff) |
Final part of fix for #419
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8072 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd_kill.cpp | 16 |
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 |