struct StatsStruct
{
char letter;
- void (*handler) ();
+ void (*handler) (struct Client *source_p);
int need_oper;
int need_admin;
};
-static void stats_dns_servers (struct Client *);
+static void stats_dns_servers(struct Client *);
static void stats_delay(struct Client *);
static void stats_hash(struct Client *);
static void stats_connect(struct Client *);
{'I', stats_auth, 0, 0, },
{'k', stats_tklines, 0, 0, },
{'K', stats_klines, 0, 0, },
- {'l', stats_ltrace, 0, 0, },
- {'L', stats_ltrace, 0, 0, },
+ {'l', NULL /* special */, 0, 0, },
+ {'L', NULL /* special */, 0, 0, },
{'m', stats_messages, 0, 0, },
{'M', stats_messages, 0, 0, },
{'n', stats_dnsbl, 0, 0, },
if((statchar != 'L') && (statchar != 'l'))
stats_spy(source_p, statchar, NULL);
- for (i = 0; stats_cmd_table[i].handler; i++)
+ for (i = 0; stats_cmd_table[i].letter; i++)
{
if(stats_cmd_table[i].letter == statchar)
{
/* Blah, stats L needs the parameters, none of the others do.. */
if(statchar == 'L' || statchar == 'l')
- stats_cmd_table[i].handler (source_p, parc, parv);
+ stats_ltrace (source_p, parc, parv);
else
stats_cmd_table[i].handler (source_p);
}
sendto_one_numeric(source_p, RPL_STATSCLINE,
form_str(RPL_STATSCLINE),
-#ifndef HIDE_SERVERS_IPS
- server_p->host,
-#else
"*@127.0.0.1",
-#endif
buf, server_p->name,
server_p->port, server_p->class_name);
}
else if((ConfigFileEntry.stats_i_oper_only == 1) && !IsOper (source_p))
{
struct ConfItem *aconf;
- char *name, *host, *pass, *user, *classname;
+ char *name, *host, *pass = "*", *user, *classname;
int port;
if(MyConnect (source_p))
(struct sockaddr *)&source_p->localClient->ip,
CONF_CLIENT,
source_p->localClient->ip.ss_family,
- source_p->username);
+ source_p->username, NULL);
else
aconf = find_conf_by_address (source_p->host, NULL, NULL, NULL, CONF_CLIENT,
- 0, source_p->username);
+ 0, source_p->username, NULL);
if(aconf == NULL)
return;
get_printable_conf (aconf, &name, &host, &pass, &user, &port, &classname);
+ if(!EmptyString(aconf->spasswd))
+ pass = aconf->spasswd;
sendto_one_numeric(source_p, RPL_STATSILINE, form_str(RPL_STATSILINE),
- name, show_iline_prefix(source_p, aconf, user),
+ name, pass, show_iline_prefix(source_p, aconf, user),
host, port, classname);
}
(struct sockaddr *)&source_p->localClient->ip,
CONF_KILL,
source_p->localClient->ip.ss_family,
- source_p->username);
+ source_p->username, NULL);
else
aconf = find_conf_by_address (source_p->host, NULL, NULL, NULL, CONF_KILL,
- 0, source_p->username);
+ 0, source_p->username, NULL);
if(aconf == NULL)
return;
(struct sockaddr *)&source_p->localClient->ip,
CONF_KILL,
source_p->localClient->ip.ss_family,
- source_p->username);
+ source_p->username, NULL);
else
aconf = find_conf_by_address (source_p->host, NULL, NULL, NULL, CONF_KILL,
- 0, source_p->username);
+ 0, source_p->username, NULL);
if(aconf == NULL)
return;
"T :accepts %u refused %u", sp.is_ac, sp.is_ref);
sendto_one_numeric(source_p, RPL_STATSDEBUG,
"T :rejected %u delaying %lu",
- sp.is_rej, rb_dlink_list_length(&delay_exit));
+ sp.is_rej, delay_exit_length());
sendto_one_numeric(source_p, RPL_STATSDEBUG,
"T :nicks being delayed %lu",
get_nd_count());
sendto_one(source_p, Sformat,
get_id(&me, source_p), RPL_STATSLINKINFO, get_id(source_p, source_p),
- get_server_name(target_p, SHOW_IP),
+ target_p->name,
(int) rb_linebuf_len (&target_p->localClient->buf_sendq),
(int) target_p->localClient->sendM,
(int) target_p->localClient->sendK,
if(IsAnyServer(target_p))
{
sendto_one_numeric(source_p, RPL_STATSLINKINFO, Lformat,
- get_server_name(target_p, SHOW_IP),
+ target_p->name,
(int) rb_linebuf_len(&target_p->localClient->buf_sendq),
(int) target_p->localClient->sendM,
(int) target_p->localClient->sendK,