/*
- * charybdis: an advanced ircd.
+ * Solanum: a slightly advanced ircd
* client.c: Controls clients.
*
* Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
* Copyright (C) 1996-2002 Hybrid Development Team
* Copyright (C) 2002-2005 ircd-ratbox development team
- * Copyright (C) 2007 William Pitcock
+ * Copyright (C) 2007 Ariadne Conill <ariadne@dereferenced.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
rb_free(client_p->localClient->cipher_string);
- if (IsCapable(client_p, CAP_ZIP))
- ssld_decrement_clicount(client_p->localClient->z_ctl);
-
- rb_free(client_p->localClient->zipstats);
-
if (client_p->localClient->ws_ctl != NULL)
wsockd_decrement_clicount(client_p->localClient->ws_ctl);
{
if(IsServer(client_p))
{
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"No response from %s, closing link",
client_p->name);
ilog(L_SERVER,
{
if(IsAnyServer(client_p))
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"No response from %s, closing link",
client_p->name);
ilog(L_SERVER,
{
if(IsExemptKline(client_p))
{
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"KLINE over-ruled for %s, client is kline_exempt [%s@%s]",
get_client_name(client_p, HIDE_IP),
aconf->user, aconf->host);
continue;
}
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "KLINE active for %s",
- get_client_name(client_p, HIDE_IP));
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+ "KLINE active for %s (%s@%s)",
+ get_client_name(client_p, HIDE_IP), aconf->user, aconf->host);
notify_banned_client(client_p, aconf, K_LINED);
continue;
continue;
}
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "KLINE active for %s",
- get_client_name(client_p, HIDE_IP));
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+ "KLINE active for %s (%s@%s)",
+ get_client_name(client_p, HIDE_IP), kline->user, kline->host);
notify_banned_client(client_p, kline, K_LINED);
}
if(aconf->status & CONF_EXEMPTDLINE)
continue;
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "DLINE active for %s",
- get_client_name(client_p, HIDE_IP));
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+ "DLINE active for %s (%s)",
+ get_client_name(client_p, HIDE_IP), aconf->host);
notify_banned_client(client_p, aconf, D_LINED);
continue;
{
if(IsExemptKline(client_p))
{
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"XLINE over-ruled for %s, client is kline_exempt [%s]",
get_client_name(client_p, HIDE_IP),
aconf->host);
continue;
}
- sendto_realops_snomask(SNO_GENERAL, L_ALL, "XLINE active for %s",
- get_client_name(client_p, HIDE_IP));
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
+ "XLINE active for %s (%s)",
+ get_client_name(client_p, HIDE_IP), aconf->host);
(void) exit_client(client_p, client_p, &me, "Bad user info");
continue;
nick = client_p->id;
/* Tell opers. */
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"RESV forced nick change for %s!%s@%s to %s; nick matched [%s] (%s)",
client_p->name, client_p->username, client_p->host, nick, mask, reason);
- sendto_realops_snomask(SNO_NCHANGE, L_ALL,
+ sendto_realops_snomask(SNO_NCHANGE, L_NETWIDE,
"Nick change: From %s to %s [%s@%s]",
client_p->name, nick, client_p->username, client_p->host);
target_p->name, (unsigned int) target_p->status,
(unsigned long long)target_p->flags, target_p->handler);
sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Please report this to the charybdis developers!");
+ "Please report this to the solanum developers!");
found++;
}
}
abt->client->name, (unsigned int) abt->client->status,
(unsigned long long)abt->client->flags, abt->client->handler);
sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Please report this to the charybdis developers!");
+ "Please report this to the solanum developers!");
continue;
}
}
rb_dlinkDelete(ptr, &abort_list);
if(IsAnyServer(abt->client))
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Closing link to %s: %s",
abt->client->name, abt->notice);
* to local opers.
*/
if(!ConfigFileEntry.hide_spoof_ips &&
- (source_p == NULL || MyOper(source_p)))
+ (source_p == NULL || HasPrivilege(source_p, "auspex:hostname")))
return 1;
return 0;
}
- else if(IsDynSpoof(target_p) && (source_p != NULL && !IsOper(source_p)))
+ else if(IsDynSpoof(target_p) && (source_p != NULL && !HasPrivilege(source_p, "auspex:hostname")))
return 0;
else
return 1;
{
if(error == 0)
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) && !IsServer(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Server %s closed the connection",
client_p->name);
}
else
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) && !IsServer(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Lost connection to %s: %s",
client_p->name, strerror(current_error));
ilog(L_SERVER, "Lost connection to %s: %s",