1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-07-01 17:06:37 +02:00

added a bunch of /stats flags

This commit is contained in:
codemastr
2001-03-02 00:55:57 +00:00
parent 247a3235ef
commit 1dc79accfc
3 changed files with 68 additions and 22 deletions
+1
View File
@@ -281,3 +281,4 @@
- Fixed a deny version {} bug (oops)
- Fixed a config_load win32 problem, found by Zogg, fixed by Stskeeps/codemastr
- Overwrote s_conf.c with s_conf2.c, and removed s_conf2.c. Viva la Conf2!
- Added /stats I, Y, b, d, D, v
+2 -2
View File
@@ -248,10 +248,10 @@ static char *replies[] = {
#endif
/* 213 RPL_STATSCLINE */ ":%s 213 %s %c %s * %s %d %d %s",
/* 214 RPL_STATSOLDNLINE */ ":%s 214 %s %c %s * %s %d %d %s",
/* 215 RPL_STATSILINE */ ":%s 215 %s %c %s * %s %d %d",
/* 215 RPL_STATSILINE */ ":%s 215 %s I %s * %s %d %s",
/* 216 RPL_STATSKLINE */ ":%s 216 %s %s %s %s",
/* 217 RPL_STATSQLINE */ ":%s 217 %s Q %s %s",
/* 218 RPL_STATSYLINE */ ":%s 218 %s %c %d %d %d %d %ld",
/* 218 RPL_STATSYLINE */ ":%s 218 %s Y %s %d %d %d %ld",
/* 219 RPL_ENDOFSTATS */ ":%s 219 %s %c :End of /STATS report",
/* 220 RPL_STATSBLINE */ ":%s 220 %s %c %s %s %s %d %d",
/* 221 RPL_UMODEIS */ ":%s 221 %s %s",
+65 -20
View File
@@ -2298,24 +2298,6 @@ int m_watch(cptr, sptr, parc, parv)
return 0;
}
/*
** m_stats
** parv[0] = sender prefix
** parv[1] = statistics selector (defaults to Message frequency)
** parv[2] = server name (current server defaulted, if omitted)
**
*/
/*
** Note: The info is reported in the order the server uses
** it--not reversed as in ircd.conf!
*/
char *get_cptr_status(aClient *acptr)
{
static char buf[10];
@@ -2367,6 +2349,19 @@ char *get_client_name2(aClient *acptr, int showports)
return pointer;
}
/*
** m_stats
** parv[0] = sender prefix
** parv[1] = statistics selector (defaults to Message frequency)
** parv[2] = server name (current server defaulted, if omitted)
**
*/
/*
** Note: The info is reported in the order the server uses
** it--not reversed as in ircd.conf!
*/
int m_stats(cptr, sptr, parc, parv)
aClient *cptr, *sptr;
int parc;
@@ -2420,9 +2415,18 @@ int m_stats(cptr, sptr, parc, parv)
switch (stat)
{
#ifdef STRIPBADWORDS
case 'b':
badwords_stats();
case 'b':
{
ConfigItem_badword *words;
for (words = conf_badword_channel; words; words = (ConfigItem_badword *) words->next) {
sendto_one(sptr, ":%s %i %s :c %s %s", me.name, RPL_TEXT, sptr->name, words->word, words->replace ? words->replace : "<censored>");
}
for (words = conf_badword_message; words; words = (ConfigItem_badword *) words->next) {
sendto_one(sptr, ":%s %i %s :m %s %s", me.name, RPL_TEXT, sptr->name, words->word, words->replace ? words->replace : "<censored>");
}
break;
}
#endif
case 'L':
case 'l':
@@ -2549,7 +2553,14 @@ int m_stats(cptr, sptr, parc, parv)
break;
case 'I':
case 'i':
{
ConfigItem_allow *allows;
for (allows = conf_allow; allows; allows = (ConfigItem_allow *) allows->next) {
sendto_one(sptr, rpl_str(RPL_STATSILINE), me.name,
parv[0], allows->ip, allows->hostname, allows->maxperip, allows->class->name);
}
break;
}
case 'E':
{
ConfigItem_except *excepts;
@@ -2713,9 +2724,27 @@ int m_stats(cptr, sptr, parc, parv)
report_dynconf(sptr);
break;
case 'D':
{
ConfigItem_deny_link *links;
for (links = conf_deny_link; links; links = (ConfigItem_deny_link *) links->next) {
if (links->flag.type == CRULE_ALL)
sendto_one(sptr, rpl_str(RPL_STATSDLINE), me.name, sptr->name,
"D", links->mask, links->prettyrule);
}
break;
}
case 'd':
{
ConfigItem_deny_link *links;
for (links = conf_deny_link; links; links = (ConfigItem_deny_link *) links->next) {
if (links->flag.type == CRULE_AUTO)
sendto_one(sptr, rpl_str(RPL_STATSDLINE), me.name, sptr->name,
"d", links->mask, links->prettyrule);
}
break;
}
case 'r':
/* FIXME: cr_report(sptr); */
@@ -2758,7 +2787,15 @@ int m_stats(cptr, sptr, parc, parv)
break;
}
case 'v':
{
ConfigItem_deny_version *versions;
for (versions = conf_deny_version; versions; versions = (ConfigItem_deny_version *) versions->next) {
sendto_one(sptr, rpl_str(RPL_STATSVLINE), me.name, sptr->name,
versions->version, versions->flags, versions->mask);
}
break;
}
case 'V':
break;
case 'W':
@@ -2779,7 +2816,15 @@ int m_stats(cptr, sptr, parc, parv)
break;
case 'Y':
case 'y':
{
ConfigItem_class *classes;
for (classes = conf_class; classes; classes = (ConfigItem_class *) classes->next) {
sendto_one(sptr, rpl_str(RPL_STATSYLINE),
me.name, sptr->name, classes->name, classes->pingfreq, classes->connfreq,
classes->maxclients, classes->sendq);
}
break;
}
case 'Z':
case 'z':
if (IsAnOper(sptr))