Allow IRC Ops and remote servers to KILL service clients (#242)
authorAlexander Barton <alex@barton.de>
Sat, 30 Sep 2017 14:48:28 +0000 (16:48 +0200)
committerGitHub <noreply@github.com>
Sat, 30 Sep 2017 14:48:28 +0000 (16:48 +0200)
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.

src/ngircd/irc.c

index a6f04cb..7acd84e 100644 (file)
@@ -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