diff options
| author | Alexander Barton <alex@barton.de> | 2013-09-26 02:58:01 +0200 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2013-10-01 12:20:23 +0200 |
| commit | 02182143c30288b54cf84325c796ec9b7a7b2d34 (patch) | |
| tree | 295566f5a338f55b90016fa68dc55f4f560237f9 | |
| parent | b5faf3055b61afaef73ac49a448cac1a5b063127 (diff) | |
| download | ngircd-02182143c30288b54cf84325c796ec9b7a7b2d34.tar.gz ngircd-02182143c30288b54cf84325c796ec9b7a7b2d34.zip | |
Don't forward KILL commands for unknown clients
| -rw-r--r-- | src/ngircd/irc.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c index 74b8a018..ee7972c2 100644 --- a/src/ngircd/irc.c +++ b/src/ngircd/irc.c @@ -346,18 +346,18 @@ IRC_KillClient(CLIENT *Client, CLIENT *From, const char *Nick, const char *Reaso CONN_ID my_conn, conn; CLIENT *c; - /* Inform other servers */ - IRC_WriteStrServersPrefix(From ? Client : NULL, - From ? From : Client_ThisServer(), - "KILL %s :%s", Nick, Reason); - - /* Do we know such a client? */ + /* Do we know such a client in the network? */ c = Client_Search(Nick); if (!c) { - LogDebug("Client with nick \"%s\" is unknown here.", Nick); + LogDebug("Client with nick \"%s\" is unknown, not forwaring.", Nick); 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 |