repo: ngircd
action: commit
revision: 
path_from: 
revision_from: e009fc87d54602cc2a4d9b60257f40bad14fc081:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit e009fc87d54602cc2a4d9b60257f40bad14fc081
Author: James Lu 
Date:   Tue Sep 26 13:50:20 2017 -0700

    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.

diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index d5e4bde3d70cd1319b82f69641a6d993257be3bc..
index ..a6f04cba37a33412ae644d2414732183d5ea978e 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);

-----END OF PAGE-----