Add /stats g to show propagated (global) klines.

This commit is contained in:
Jilles Tjoelker 2010-03-06 00:31:51 +01:00
parent 6229f9f83b
commit 416d868ed4
2 changed files with 29 additions and 0 deletions

View file

@ -16,6 +16,7 @@ X B - Shows hash statistics
* e - Shows exemptions to D lines
X E - Shows Events
X f - Shows File Descriptors
* g - Shows global K lines
^ h - Shows hub_mask/leaf_mask (Old H:/L: lines)
^ i - Shows auth blocks (Old I: lines)
^ K - Shows K lines (or matched klines)

View file

@ -94,6 +94,7 @@ static void stats_tdeny(struct Client *);
static void stats_deny(struct Client *);
static void stats_exempt(struct Client *);
static void stats_events(struct Client *);
static void stats_prop_klines(struct Client *);
static void stats_hubleaf(struct Client *);
static void stats_auth(struct Client *);
static void stats_tklines(struct Client *);
@ -137,6 +138,7 @@ static struct StatsStruct stats_cmd_table[] = {
{'E', stats_events, 1, 1, },
{'f', stats_comm, 1, 1, },
{'F', stats_comm, 1, 1, },
{'g', stats_prop_klines, 1, 0, },
{'h', stats_hubleaf, 0, 0, },
{'H', stats_hubleaf, 0, 0, },
{'i', stats_auth, 0, 0, },
@ -450,6 +452,32 @@ stats_events (struct Client *source_p)
rb_dump_events(stats_events_cb, source_p);
}
static void
stats_prop_klines(struct Client *source_p)
{
struct ConfItem *aconf;
rb_dlink_node *ptr;
char *user, *host, *pass, *oper_reason;
RB_DLINK_FOREACH(ptr, prop_bans.head)
{
aconf = ptr->data;
/* Skip non-klines and deactivated klines. */
if(aconf->status != CONF_KILL)
continue;
get_printable_kline(source_p, aconf, &host, &pass,
&user, &oper_reason);
sendto_one_numeric(source_p, RPL_STATSKLINE,
form_str(RPL_STATSKLINE),
'g', host, user, pass,
oper_reason ? "|" : "",
oper_reason ? oper_reason : "");
}
}
static void
stats_hubleaf(struct Client *source_p)
{