ngircd

Free, portable and lightweight Internet Relay Chat server http://ngircd.barton.de/
Log | Files | Refs | README | LICENSE

commit e009fc87d54602cc2a4d9b60257f40bad14fc081
parent c37d6971d66a2d840a2b20fe2b995443c2bd6c87
Author: James Lu <james@overdrivenetworks.com>
Date:   Tue, 26 Sep 2017 13:50:20 -0700

Don't forward KILLs to other servers if they've been blocked locally

This prevents clients from killing IRC services, for example.

Closes #238.
Closes #239.
Diffstat:
Msrc/ngircd/irc.c | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c @@ -362,11 +362,6 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso return CONNECTED; } - /* Inform other servers */ - IRC_WriteStrServersPrefix(From ? Client : NULL, - From ? From : Client_ThisServer(), - "KILL %s :%s", Nick, Reason); - if (Client_Type(c) != CLIENT_USER && Client_Type(c) != CLIENT_GOTNICK) { /* Target of this KILL is not a regular user, this is * invalid! So we ignore this case if we received a @@ -388,6 +383,12 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso Client_Type(c), Nick); } + /* Inform other servers */ + IRC_WriteStrServersPrefix(From ? Client : NULL, + From ? From : Client_ThisServer(), + "KILL %s :%s", Nick, Reason); + + /* Save ID of this connection */ if (Client) my_conn = Client_Conn(Client);