X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/74e3e4f1e2f8976fab17b184ec9365d6520462b6..8a889b0a5ffbac79bea29658c7c0f4a89f9b7be8:/modules/m_stats.c diff --git a/modules/m_stats.c b/modules/m_stats.c index 234a238..dc826bc 100644 --- a/modules/m_stats.c +++ b/modules/m_stats.c @@ -21,7 +21,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: m_stats.c 1608 2006-06-04 02:11:40Z jilles $ */ #include "stdinc.h" @@ -94,6 +93,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 +137,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 +451,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) { @@ -960,6 +987,7 @@ static struct shared_flags shared_flagtable[] = { SHARED_PDLINE, 'D' }, { SHARED_UNDLINE, 'E' }, { SHARED_DIE, 'I' }, + { SHARED_MODULE, 'M' }, { 0, '\0'} };