From e009fc87d54602cc2a4d9b60257f40bad14fc081 Mon Sep 17 00:00:00 2001 From: James Lu Date: Tue, 26 Sep 2017 13:50:20 -0700 Subject: [PATCH] Don't forward KILLs to other servers if they've been blocked locally This prevents clients from killing IRC services, for example. Closes #238. Closes #239. --- src/ngircd/irc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index d5e4bde3..a6f04cba 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -362,11 +362,6 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso return CONNECTED; } - /* Inform other servers */ - IRC_WriteStrServersPrefix(From ? Client : NULL, - From ? From : Client_ThisServer(), - "KILL %s :%s", Nick, Reason); - if (Client_Type(c) != CLIENT_USER && Client_Type(c) != CLIENT_GOTNICK) { /* Target of this KILL is not a regular user, this is * invalid! So we ignore this case if we received a @@ -388,6 +383,12 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso Client_Type(c), Nick); } + /* Inform other servers */ + IRC_WriteStrServersPrefix(From ? Client : NULL, + From ? From : Client_ThisServer(), + "KILL %s :%s", Nick, Reason); + + /* Save ID of this connection */ if (Client) my_conn = Client_Conn(Client); -- 2.39.2