summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2017-09-30 16:48:28 +0200
committerGitHub <noreply@github.com>2017-09-30 16:48:28 +0200
commit05640f9285e28ce64180833d39f7ceda88d3915a (patch)
treefbbb2985439eb718fd996183f13ff81a74326534 /src
parente009fc87d54602cc2a4d9b60257f40bad14fc081 (diff)
downloadngircd-05640f9285e28ce64180833d39f7ceda88d3915a.tar.gz
ngircd-05640f9285e28ce64180833d39f7ceda88d3915a.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index a6f04cba..7acd84ee 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