-static struct StatsStruct stats_cmd_table[] = {
- /* letter function need_oper need_admin */
- {'a', NULL /* special */, 1, 1, },
- {'A', NULL /* special */, 1, 1, },
- {'b', stats_delay, 1, 1, },
- {'B', stats_hash, 1, 1, },
- {'c', stats_connect, 0, 0, },
- {'C', stats_capability, 1, 0, },
- {'d', stats_tdeny, 1, 0, },
- {'D', stats_deny, 1, 0, },
- {'e', stats_exempt, 1, 0, },
- {'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, },
- {'I', stats_auth, 0, 0, },
- {'k', stats_tklines, 0, 0, },
- {'K', stats_klines, 0, 0, },
- {'l', NULL /* special */, 0, 0, },
- {'L', NULL /* special */, 0, 0, },
- {'m', stats_messages, 0, 0, },
- {'M', stats_messages, 0, 0, },
- {'n', stats_dnsbl, 0, 0, },
- {'o', stats_oper, 0, 0, },
- {'O', stats_privset, 1, 0, },
- {'p', stats_operedup, 0, 0, },
- {'P', stats_ports, 0, 0, },
- {'q', stats_tresv, 1, 0, },
- {'Q', stats_resv, 1, 0, },
- {'r', stats_usage, 1, 0, },
- {'R', stats_usage, 1, 0, },
- {'s', stats_ssld, 1, 1, },
- {'S', stats_ssld, 1, 1, },
- {'t', stats_tstats, 1, 0, },
- {'T', stats_tstats, 1, 0, },
- {'u', stats_uptime, 0, 0, },
- {'U', stats_shared, 1, 0, },
- {'v', stats_servers, 0, 0, },
- {'V', stats_servers, 0, 0, },
- {'x', stats_tgecos, 1, 0, },
- {'X', stats_gecos, 1, 0, },
- {'y', stats_class, 0, 0, },
- {'Y', stats_class, 0, 0, },
- {'z', stats_memory, 1, 0, },
- {'Z', stats_ziplinks, 1, 0, },
- {'?', stats_servlinks, 0, 0, },
- {(char) 0, (void (*)()) 0, 0, 0, }
+static struct stats_cmd stats_cmd_table[256] = {
+/* letter handler admin priv */
+ ['a'] = HANDLER_NORM(stats_dns_servers, true, NULL),
+ ['A'] = HANDLER_NORM(stats_dns_servers, true, NULL),
+ ['b'] = HANDLER_NORM(stats_delay, true, NULL),
+ ['B'] = HANDLER_NORM(stats_hash, true, NULL),
+ ['c'] = HANDLER_NORM(stats_connect, false, NULL),
+ ['C'] = HANDLER_NORM(stats_capability, false, "oper:general"),
+ ['d'] = HANDLER_NORM(stats_tdeny, false, "oper:general"),
+ ['D'] = HANDLER_NORM(stats_deny, false, "oper:general"),
+ ['e'] = HANDLER_NORM(stats_exempt, false, "oper:general"),
+ ['E'] = HANDLER_NORM(stats_events, true, NULL),
+ ['f'] = HANDLER_NORM(stats_comm, true, NULL),
+ ['F'] = HANDLER_NORM(stats_comm, true, NULL),
+ ['g'] = HANDLER_NORM(stats_prop_klines, false, "oper:general"),
+ ['i'] = HANDLER_NORM(stats_auth, false, NULL),
+ ['I'] = HANDLER_NORM(stats_auth, false, NULL),
+ ['k'] = HANDLER_NORM(stats_tklines, false, NULL),
+ ['K'] = HANDLER_NORM(stats_klines, false, NULL),
+ ['l'] = HANDLER_PARV(stats_ltrace, false, NULL),
+ ['L'] = HANDLER_PARV(stats_ltrace, false, NULL),
+ ['m'] = HANDLER_NORM(stats_messages, false, NULL),
+ ['M'] = HANDLER_NORM(stats_messages, false, NULL),
+ ['n'] = HANDLER_NORM(stats_dnsbl, false, NULL),
+ ['o'] = HANDLER_NORM(stats_oper, false, NULL),
+ ['O'] = HANDLER_NORM(stats_privset, false, "oper:privs"),
+ ['p'] = HANDLER_NORM(stats_operedup, false, NULL),
+ ['P'] = HANDLER_NORM(stats_ports, false, NULL),
+ ['q'] = HANDLER_NORM(stats_tresv, false, "oper:general"),
+ ['Q'] = HANDLER_NORM(stats_resv, false, "oper:general"),
+ ['r'] = HANDLER_NORM(stats_usage, false, "oper:general"),
+ ['R'] = HANDLER_NORM(stats_usage, false, "oper:general"),
+ ['s'] = HANDLER_NORM(stats_secure, false, "oper:general"),
+ ['S'] = HANDLER_NORM(stats_ssld, true, NULL),
+ ['t'] = HANDLER_NORM(stats_tstats, false, "oper:general"),
+ ['T'] = HANDLER_NORM(stats_tstats, false, "oper:general"),
+ ['u'] = HANDLER_NORM(stats_uptime, false, NULL),
+ ['v'] = HANDLER_NORM(stats_servers, false, NULL),
+ ['V'] = HANDLER_NORM(stats_servers, false, NULL),
+ ['x'] = HANDLER_NORM(stats_tgecos, false, "oper:general"),
+ ['X'] = HANDLER_NORM(stats_gecos, false, "oper:general"),
+ ['y'] = HANDLER_NORM(stats_class, false, NULL),
+ ['Y'] = HANDLER_NORM(stats_class, false, NULL),
+ ['z'] = HANDLER_NORM(stats_memory, false, "oper:general"),
+ ['Z'] = HANDLER_NORM(stats_ziplinks, false, "oper:general"),
+ ['?'] = HANDLER_NORM(stats_servlinks, false, NULL),