rb_free(client_p->localClient->fullcaps);
rb_free(client_p->localClient->opername);
rb_free(client_p->localClient->mangledhost);
+ if (client_p->localClient->privset)
+ privilegeset_unref(client_p->localClient->privset);
- ssld_decrement_clicount(client_p->localClient->ssl_ctl);
+ if(IsSSL(client_p))
+ ssld_decrement_clicount(client_p->localClient->ssl_ctl);
+
+ if(IsCapable(client_p, CAP_ZIP))
+ ssld_decrement_clicount(client_p->localClient->z_ctl);
rb_bh_free(lclient_heap, client_p->localClient);
client_p->localClient = NULL;
continue;
/* if there is a returned struct ConfItem then kill it */
- if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip, client_p->localClient->ip.ss_family)))
+ if((aconf = find_dline((struct sockaddr *)&client_p->localClient->ip, client_p->localClient->ip.ss_family)) && !(aconf->status & CONF_EXEMPTDLINE))
{
- if(aconf->status & CONF_EXEMPTDLINE)
- continue;
-
sendto_realops_snomask(SNO_GENERAL, L_ALL,
"DLINE active for %s",
get_client_name(client_p, HIDE_IP));
if(IsExemptKline(client_p))
{
sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "KLINE over-ruled for %s, client is kline_exempt",
- get_client_name(client_p, HIDE_IP));
+ "KLINE over-ruled for %s, client is kline_exempt [%s@%s]",
+ get_client_name(client_p, HIDE_IP),
+ aconf->user, aconf->host);
continue;
}
if(IsExemptKline(client_p))
{
sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "XLINE over-ruled for %s, client is kline_exempt",
- get_client_name(client_p, HIDE_IP));
+ "XLINE over-ruled for %s, client is kline_exempt [%s]",
+ get_client_name(client_p, HIDE_IP),
+ aconf->name);
continue;
}