void
init_builtin_capabs(void)
{
+ static struct ClientCapability high_priority = {.flags = CLICAP_FLAGS_PRIORITY};
serv_capindex = capability_index_create("server capabilities");
/* These two are not set via CAPAB/GCAP keywords. */
cli_capindex = capability_index_create("client capabilities");
- CLICAP_MULTI_PREFIX = capability_put(cli_capindex, "multi-prefix", NULL);
- CLICAP_ACCOUNT_NOTIFY = capability_put(cli_capindex, "account-notify", NULL);
- CLICAP_EXTENDED_JOIN = capability_put(cli_capindex, "extended-join", NULL);
- CLICAP_AWAY_NOTIFY = capability_put(cli_capindex, "away-notify", NULL);
- CLICAP_USERHOST_IN_NAMES = capability_put(cli_capindex, "userhost-in-names", NULL);
+ CLICAP_MULTI_PREFIX = capability_put(cli_capindex, "multi-prefix", &high_priority);
+ CLICAP_ACCOUNT_NOTIFY = capability_put(cli_capindex, "account-notify", &high_priority);
+ CLICAP_EXTENDED_JOIN = capability_put(cli_capindex, "extended-join", &high_priority);
+ CLICAP_AWAY_NOTIFY = capability_put(cli_capindex, "away-notify", &high_priority);
+ CLICAP_USERHOST_IN_NAMES = capability_put(cli_capindex, "userhost-in-names", &high_priority);
CLICAP_CAP_NOTIFY = capability_put(cli_capindex, "cap-notify", NULL);
- CLICAP_CHGHOST = capability_put(cli_capindex, "chghost", NULL);
+ CLICAP_CHGHOST = capability_put(cli_capindex, "chghost", &high_priority);
CLICAP_ECHO_MESSAGE = capability_put(cli_capindex, "echo-message", NULL);
}
*/
client_p = find_server(NULL, tmp_p->name);
- if(!client_p && (CurrUsers(cltmp) < MaxUsers(cltmp)) && !connecting)
+ if(!client_p && (CurrUsers(cltmp) < MaxAutoconn(cltmp)) && !connecting)
{
server_p = tmp_p;
* error afterwards if it fails.
* -- adrian
*/
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Connection to %s activated",
server_p->name);
me.id, (long) chptr->channelts, chptr->chname, flag);
t = buf + mlen;
- RB_DLINK_FOREACH(ptr, list->head)
+ RB_DLINK_FOREACH_PREV(ptr, list->tail)
{
banptr = ptr->data;
if((server_p = client_p->localClient->att_sconf) == NULL)
{
/* This shouldn't happen, better tell the ops... -A1kmm */
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Warning: Lost connect{} block for server %s!", host);
return exit_client(client_p, client_p, client_p, "Lost connect{} block!");
}
*/
if((client_p = find_server(NULL, server_p->name)))
{
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Server %s already present from %s",
server_p->name, client_p->name);
if(by && IsPerson(by) && !MyClient(by))
}
if (CurrUsers(server_p->class) >= MaxUsers(server_p->class)) {
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"No more connections allowed in class \"%s\" for server %s",
server_p->class->class_name, server_p->name);
if(by && IsPerson(by) && !MyClient(by))
*/
if(status == RB_ERR_TIMEOUT || status == RB_ERROR_SSL)
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Error connecting to %s[%s]: %s",
client_p->name,
"255.255.255.255",
else
{
errstr = strerror(rb_get_sockerr(F));
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Error connecting to %s[%s]: %s (%s)",
client_p->name,
"255.255.255.255",
/* Get the C/N lines */
if((server_p = client_p->localClient->att_sconf) == NULL)
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL, "Lost connect{} block for %s",
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "Lost connect{} block for %s",
client_p->name);
exit_client(client_p, client_p, &me, "Lost connect{} block");
return;
if(server_p->certfp && (!client_p->certfp || rb_strcasecmp(server_p->certfp, client_p->certfp) != 0))
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"Connection to %s has invalid certificate fingerprint %s",
client_p->name, client_p->certfp);
ilog(L_SERVER, "Access denied, invalid certificate fingerprint %s from %s",
*/
if(IsAnyDead(client_p))
{
- sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) ? L_NETWIDE : L_ALL,
+ sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
"%s went dead during handshake", client_p->name);
exit_client(client_p, client_p, &me, "Went dead during handshake");
return;