about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2012-10-06 19:23:05 +0200
committerAlexander Barton <alex@barton.de>2012-10-06 19:23:05 +0200
commit9ac94339dca746d830a877944e30d1cc9c45c47f (patch)
treeb84d0775d3ed9684460c2f83394f868a15785bc4
parentd3ae351236e605b400b94fcfa8e7670e26e19c89 (diff)
downloadngircd-9ac94339dca746d830a877944e30d1cc9c45c47f.tar.gz
ngircd-9ac94339dca746d830a877944e30d1cc9c45c47f.zip
KICK-protect IRC services
-rw-r--r--src/ngircd/channel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c
index c679daeb..f3c74dc6 100644
--- a/src/ngircd/channel.c
+++ b/src/ngircd/channel.c
@@ -330,7 +330,8 @@ Channel_Kick(CLIENT *Peer, CLIENT *Target, CLIENT *Origin, const char *Name,
 		/* Channel mode 'Q' and user mode 'q' on target: nobody but
 		 * IRC Operators and servers can kick the target user */
 		if ((strchr(Channel_Modes(chan), 'Q')
-		    || Client_HasMode(Target, 'q'))
+		     || Client_HasMode(Target, 'q')
+		     || Client_Type(Target) == CLIENT_SERVICE)
 		    && !Client_HasMode(Origin, 'o')) {
 			IRC_WriteStrClient(Origin, ERR_KICKDENY_MSG,
 					   Client_ID(Origin), Name,