repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 05640f9285e28ce64180833d39f7ceda88d3915a:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 05640f9285e28ce64180833d39f7ceda88d3915a
Author: Alexander Barton 
Date:   Sat Sep 30 16:48:28 2017 +0200

    Allow IRC Ops and remote servers to KILL service clients (#242)

    In the end, service clients behave like regular users, therefore IRC
    operators and servers should be able to KILL them: for example to
    resolve nick collisions.

    This is related to #238.

diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index a6f04cba37a33412ae644d2414732183d5ea978e..
index ..7acd84ee7857fa0a9a3b5e7af54b9384c9547f0f 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -362,7 +362,8 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso
 		return CONNECTED;
 	}

-	if (Client_Type(c) != CLIENT_USER && Client_Type(c) != CLIENT_GOTNICK) {
+	if (Client_Type(c) != CLIENT_USER && Client_Type(c) != CLIENT_GOTNICK
+	    && Client_Type(c) != CLIENT_SERVICE) {
 		/* Target of this KILL is not a regular user, this is
 		 * invalid! So we ignore this case if we received a
 		 * regular KILL from the network and try to kill the

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