Anonymous avatar Anonymous committed 7df4b8c

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

Comments (0)

Files changed (2)

 * 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)

modules/m_stats.c

 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 *);
 	{'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, },
 }
 
 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)
 {
 	struct remote_conf *hub_p;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.