* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
- *
- * IRC commands
*/
#include "portab.h"
-static char UNUSED id[] = "$Id: irc.c,v 1.132 2008/01/15 22:28:14 fw Exp $";
+/**
+ * @file
+ * IRC commands
+ */
#include "imp.h"
#include <assert.h>
#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] );
if (nick != NULL && host != NULL) {
if (strcmp(nick, Client_ID(cl)) == 0 &&
strcmp(user, Client_User(cl)) == 0 &&
- strcasecmp(host, Client_Hostname(cl)) == 0)
+ strcasecmp(host, Client_HostnameCloaked(cl)) == 0)
break;
else
continue;
if (strcasecmp(user, Client_User(cl)) != 0)
continue;
if (host != NULL && strcasecmp(host,
- Client_Hostname(cl)) != 0)
+ Client_HostnameCloaked(cl)) != 0)
continue;
if (server != NULL && strcasecmp(server,
Client_ID(Client_Introducer(cl))) != 0)