#include "numnicks.h"
#include "querycmds.h"
#include "res.h"
+#include "s_auth.h"
#include "s_bsd.h"
#include "s_conf.h"
#include "s_debug.h"
if (tmp->status & CONF_UWORLD)
send_reply(sptr, RPL_STATSULINE, host);
else if (tmp->status & CONF_SERVER)
- send_reply(sptr, RPL_STATSCLINE, name, "", "*", port, maximum, hub_limit, get_conf_class(tmp));
+ send_reply(sptr, RPL_STATSCLINE, name, port, maximum, hub_limit, get_conf_class(tmp));
else if (tmp->status & CONF_CLIENT)
send_reply(sptr, RPL_STATSILINE,
+ (tmp->username ? tmp->username : ""), (tmp->username ? "@" : ""),
(tmp->host ? tmp->host : "*"), maximum,
(name[0] == ':' ? "0" : ""), (tmp->name ? tmp->name : "*"),
port, get_conf_class(tmp));
|| (aconf->name && !match(param, aconf->name))))
{
send_reply(to, RPL_STATSILINE,
+ (aconf->username ? aconf->username : ""), (aconf->username ? "@" : ""),
(aconf->host ? aconf->host : "*"), aconf->maximum,
(aconf->name && aconf->name[0] == ':' ? "0":""),
aconf->name ? aconf->name : "*",
"%-20s %-20s Flags Hops Numeric Lag RTT Up Down "
"Clients/Max Proto %-10s :Info", "Servername", "Uplink",
"LinkTS");
- fmt = "%-20s %-20s %c%c%c%c %4i %s %-4i %5i %4i %4i %4i %5i %5i P%-2i %Tu :%s";
+ fmt = "%-20s %-20s %c%c%c%c%c %4i %s %-4i %5i %4i %4i %4i %5i %5i P%-2i %Tu :%s";
} else {
- fmt = "%s %s %c%c%c%c %i %s %i %i %i %i %i %i %i P%i %Tu :%s";
+ fmt = "%s %s %c%c%c%c%c %i %s %i %i %i %i %i %i %i P%i %Tu :%s";
}
for (acptr = GlobalClientList; acptr; acptr = cli_next(acptr))
IsBurstAck(acptr) ? 'A' : '-',
IsHub(acptr) ? 'H' : '-',
IsService(acptr) ? 'S' : '-',
+ IsIPv6(acptr) ? '6' : '-',
cli_hopcount(acptr),
NumServ(acptr),
base64toint(cli_yxx(acptr)),
}
}
-#ifdef DEBUGMODE
/** Display objects allocated (and total memory used by them) for
* several types of structures.
* @param[in] to Client requesting statistics.
static void
stats_meminfo(struct Client* to, const struct StatDesc* sd, char* param)
{
+ extern void bans_send_meminfo(struct Client *cptr);
+
class_send_meminfo(to);
+ bans_send_meminfo(to);
send_listinfo(to, 0);
}
-#endif
/** Send a list of available statistics.
* @param[in] to Client requesting statistics.
/** Contains information about all statistics. */
struct StatDesc statsinfo[] = {
- { 'a', "nameservers", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_a,
+ { 'a', "nameservers", STAT_FLAG_OPERFEAT|STAT_FLAG_LOCONLY, FEAT_HIS_STATS_a,
report_dns_servers, 0,
"DNS servers." },
{ 'c', "connect", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_c,
{ 'e', "engine", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_e,
stats_engine, 0,
"Report server event loop engine." },
- { 'f', "features", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_f,
+ { 'f', "features", (STAT_FLAG_OPERFEAT | STAT_FLAG_CASESENS), FEAT_HIS_STATS_f,
feature_report, 0,
"Feature settings." },
+ { 'F', "featuresall", (STAT_FLAG_OPERFEAT | STAT_FLAG_CASESENS), FEAT_HIS_STATS_f,
+ feature_report, 1,
+ "All feature settings, including defaulted values." },
{ 'g', "glines", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_g,
gline_stats, 0,
"Global bans (G-lines)." },
{ 'w', "userload", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_w,
calc_load, 0,
"Userload statistics." },
-#ifdef DEBUGMODE
{ 'x', "memusage", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_x,
stats_meminfo, 0,
- "List usage information (Debug only)." },
-#endif
+ "List usage information." },
{ 'y', "classes", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_y,
report_classes, 0,
"Connection classes." },
{ 'z', "memory", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_z,
count_memory, 0,
"Memory/Structure allocation information." },
+ { ' ', "iauth", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_IAUTH,
+ report_iauth_stats, 0,
+ "IAuth statistics." },
+ { ' ', "iauthconf", STAT_FLAG_OPERFEAT, FEAT_HIS_STATS_IAUTH,
+ report_iauth_conf, 0,
+ "IAuth configuration." },
{ '*', "help", STAT_FLAG_CASESENS, FEAT_LAST_F,
stats_help, 0,
"Send help for stats." },