#include <string.h>
#include "ngircd.h"
-#include "resolve.h"
#include "conn-func.h"
#include "conf.h"
-#include "client.h"
#include "channel.h"
#include "defines.h"
#include "irc-write.h"
* disconnect clients. It can be used by IRC operators and servers, for example
* to "solve" nick collisions after netsplits.
* Please note that this function is also called internally, without a real
- * KILL command beeing received over the network! Client is Client_ThisServer()
+ * KILL command being received over the network! Client is Client_ThisServer()
* in this case. */
GLOBAL bool
IRC_KILL( CLIENT *Client, REQUEST *Req )
Client_Type( c ), Req->argv[0] );
}
- /* Kill client NOW! */
+ /* Kill the client NOW:
+ * - Close the local connection (if there is one),
+ * - Destroy the CLIENT structure for remote clients.
+ * Note: Conn_Close() removes the CLIENT structure as well. */
conn = Client_Conn( c );
- Client_Destroy( c, NULL, reason, false );
- if( conn > NONE )
- Conn_Close( conn, NULL, reason, true );
+ if(conn > NONE)
+ Conn_Close(conn, NULL, reason, true);
+ else
+ Client_Destroy(c, NULL, reason, false);
}
else
Log( LOG_NOTICE, "Client with nick \"%s\" is unknown here.", Req->argv[0] );