From: Jilles Tjoelker Date: Fri, 5 Mar 2010 23:31:51 +0000 (+0100) Subject: Add /stats g to show propagated (global) klines. X-Git-Tag: shadowircd-6.1.0~34^2~14 X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/commitdiff_plain/20eef930041ff0bdda148fd1ec82adc8128d0d05?hp=c177d078ea560e07276f94948f5287a8feb1b5fe Add /stats g to show propagated (global) klines. --- diff --git a/help/opers/stats b/help/opers/stats index 3017eb3..5d25900 100644 --- a/help/opers/stats +++ b/help/opers/stats @@ -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) diff --git a/modules/m_stats.c b/modules/m_stats.c index f621270..67e53bb 100644 --- a/modules/m_stats.c +++ b/modules/m_stats.c @@ -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) {