repo: ngircd action: commit revision: path_from: revision_from: 9ac94339dca746d830a877944e30d1cc9c45c47f: path_to: revision_to:
commit 9ac94339dca746d830a877944e30d1cc9c45c47f Author: Alexander BartonDate: Sat Oct 6 19:23:05 2012 +0200 KICK-protect IRC services diff --git a/src/ngircd/channel.c b/src/ngircd/channel.c
--- 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,
-----END OF PAGE-----