#include "hash.h"
#include "ircd.h"
#include "ircd_alloc.h"
-#include "ircd_auth.h"
#include "ircd_features.h"
#include "ircd_log.h"
#include "ircd_reply.h"
#include "parse.h"
#include "querycmds.h"
#include "res.h"
+#include "s_auth.h"
#include "s_bsd.h"
#include "s_conf.h"
#include "s_debug.h"
if (MyUser(bcptr))
set_snomask(bcptr, ~0, SNO_DEL);
- if (IsInvisible(bcptr))
+ if (IsInvisible(bcptr)) {
+ assert(UserStats.inv_clients > 0);
--UserStats.inv_clients;
- if (IsOper(bcptr))
+ }
+ if (IsOper(bcptr)) {
+ assert(UserStats.opers > 0);
--UserStats.opers;
+ }
if (MyConnect(bcptr))
Count_clientdisconnects(bcptr, UserStats);
else
assert(!IsServer(bcptr));
/* bcptr->user->server->serv->client_list[IndexYXX(bcptr)] = NULL; */
RemoveYXXClient(cli_user(bcptr)->server, cli_yxx(bcptr));
- if (IsIAuthed(bcptr) || cli_iauth(bcptr))
- iauth_exit_client(bcptr);
}
/* Remove bcptr from the client list */
on_for = CurrentTime - cli_firsttime(victim);
+ if (IsUser(victim) || IsUserPort(victim))
+ auth_send_exit(victim);
+
if (IsUser(victim))
log_write(LS_USER, L_TRACE, 0, "%Tu %i %s@%s %s %s %s%s %s :%s",
cli_firsttime(victim), on_for,
cli_name(killer), comment);
else
sendrawto_one(victim, MSG_ERROR " :Closing Link: %s by %s (%s)",
- cli_name(victim), IsServer(killer) ? cli_name(&me) :
- cli_name(killer), comment);
+ cli_name(victim),
+ cli_name(IsServer(killer) ? &his : killer),
+ comment);
}
}
if ((IsServer(victim) || IsHandshake(victim) || IsConnecting(victim)) &&