X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/bf77c3a1efba7213aee6d2419368de5872255374..738b5d291eae34c0f7bedfb0a09c16362d99a7d5:/modules/m_info.c diff --git a/modules/m_info.c b/modules/m_info.c index 85b6d44c..5046a7ff 100644 --- a/modules/m_info.c +++ b/modules/m_info.c @@ -20,15 +20,12 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA - * - * $Id: m_info.c 3396 2007-04-05 00:38:52Z jilles $ */ #include "stdinc.h" #include "m_info.h" #include "channel.h" #include "client.h" -#include "common.h" #include "match.h" #include "ircd.h" #include "hook.h" @@ -40,17 +37,21 @@ #include "msg.h" #include "parse.h" #include "modules.h" +#include "s_newconf.h" + +static const char info_desc[] = + "Provides the INFO command for retrieving server copyright, credits, and other info"; static void send_conf_options(struct Client *source_p); static void send_birthdate_online_time(struct Client *source_p); static void send_info_text(struct Client *source_p); static void info_spy(struct Client *); -static int m_info(struct Client *, struct Client *, int, const char **); -static int mo_info(struct Client *, struct Client *, int, const char **); +static void m_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **); +static void mo_info(struct MsgBuf *, struct Client *, struct Client *, int, const char **); struct Message info_msgtab = { - "INFO", 0, 0, 0, MFLG_SLOW, + "INFO", 0, 0, 0, 0, {mg_unreg, {m_info, 0}, {mo_info, 0}, mg_ignore, mg_ignore, {mo_info, 0}} }; @@ -62,7 +63,7 @@ mapi_hlist_av1 info_hlist[] = { { NULL, NULL } }; -DECLARE_MODULE_AV1(info, NULL, NULL, info_clist, info_hlist, NULL, "$Revision: 3396 $"); +DECLARE_MODULE_AV2(info, NULL, NULL, info_clist, info_hlist, NULL, NULL, NULL, info_desc); /* * jdc -- Structure for our configuration value table @@ -151,6 +152,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.client_flood_message_time, "Time to allow per client_flood_message_num outside of burst", }, + { + "post_registration_delay", + OUTPUT_DECIMAL, + &ConfigFileEntry.post_registration_delay, + "Time to wait before processing commands from a new client", + }, { "connect_timeout", OUTPUT_DECIMAL, @@ -203,7 +210,7 @@ static struct InfoStruct info_table[] = { "dots_in_ident", OUTPUT_DECIMAL, &ConfigFileEntry.dots_in_ident, - "Number of permissable dots in an ident" + "Number of permissible dots in an ident" }, { "failed_oper_notice", @@ -284,18 +291,6 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.hide_spoof_ips, "Hide IPs of spoofed users" }, - { - "hub", - OUTPUT_BOOLEAN_YN, - &ServerInfo.hub, - "Server is a hub" - }, - { - "kline_delay", - OUTPUT_DECIMAL, - &ConfigFileEntry.kline_delay, - "Duration of time to delay kline checking" - }, { "kline_reason", OUTPUT_STRING, @@ -324,7 +319,7 @@ static struct InfoStruct info_table[] = { "max_nick_changes", OUTPUT_DECIMAL, &ConfigFileEntry.max_nick_changes, - "NICK change threshhold setting" + "NICK change threshold setting" }, { "max_nick_time", @@ -356,12 +351,6 @@ static struct InfoStruct info_table[] = { &ServerInfo.network_name, "Network name" }, - { - "network_desc", - OUTPUT_STRING, - &ServerInfo.network_desc, - "Network description" - }, { "nick_delay", OUTPUT_DECIMAL, @@ -536,6 +525,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.away_interval, "The minimum time between aways", }, + { + "tls_ciphers_oper_only", + OUTPUT_BOOLEAN_YN, + &ConfigFileEntry.tls_ciphers_oper_only, + "TLS cipher strings are hidden in whois for non-opers", + }, { "default_split_server_count", OUTPUT_DECIMAL, @@ -590,6 +585,12 @@ static struct InfoStruct info_table[] = { &ConfigChannel.max_chans_per_user, "Maximum number of channels a user can join", }, + { + "max_chans_per_user_large", + OUTPUT_DECIMAL, + &ConfigChannel.max_chans_per_user_large, + "Maximum extended number of channels a user can join", + }, { "no_create_on_split", OUTPUT_BOOLEAN_YN, @@ -638,6 +639,12 @@ static struct InfoStruct info_table[] = { &ConfigChannel.resv_forcepart, "Force-part local users on channel RESV" }, + { + "opmod_send_statusmsg", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.opmod_send_statusmsg, + "Send messages to @#channel if affected by +z" + }, { "disable_hidden", OUTPUT_BOOLEAN_YN, @@ -671,8 +678,8 @@ static struct InfoStruct info_table[] = { ** m_info ** parv[1] = servername */ -static int -m_info(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) +static void +m_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { static time_t last_used = 0L; @@ -682,13 +689,13 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "INFO"); sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO)); - return 0; + return; } else last_used = rb_current_time(); if(hunt_server(client_p, source_p, ":%s INFO :%s", 1, parc, parv) != HUNTED_ISME) - return 0; + return; info_spy(source_p); @@ -696,22 +703,21 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p send_birthdate_online_time(source_p); sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO)); - return 0; } /* ** mo_info ** parv[1] = servername */ -static int -mo_info(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) +static void +mo_info(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { if(hunt_server(client_p, source_p, ":%s INFO :%s", 1, parc, parv) == HUNTED_ISME) { info_spy(source_p); send_info_text(source_p); - if(IsOper(source_p)) + if(IsOperGeneral(source_p)) { send_conf_options(source_p); sendto_one_numeric(source_p, RPL_INFO, ":%s", @@ -722,8 +728,6 @@ mo_info(struct Client *client_p, struct Client *source_p, int parc, const char * sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO)); } - - return 0; } /* @@ -781,13 +785,13 @@ send_conf_options(struct Client *source_p) /* * Now send them a list of all our configuration options - * (mostly from config.h) + * (mostly from defaults.h) */ for (infoptr = MyInformation; infoptr->name; infoptr++) { if(infoptr->intvalue) { - sendto_one(source_p, ":%s %d %s :%-30s %-5d [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16d [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), infoptr->name, infoptr->intvalue, @@ -795,7 +799,7 @@ send_conf_options(struct Client *source_p) } else { - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), infoptr->name, infoptr->strvalue, @@ -810,14 +814,14 @@ send_conf_options(struct Client *source_p) { switch (info_table[i].output_type) { - /* - * For "char *" references - */ + /* + * For "char *" references + */ case OUTPUT_STRING: { char *option = *((char **) info_table[i].option); - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), info_table[i].name, @@ -833,7 +837,7 @@ send_conf_options(struct Client *source_p) { char *option = (char *) info_table[i].option; - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), info_table[i].name, @@ -849,7 +853,7 @@ send_conf_options(struct Client *source_p) { int option = *((int *) info_table[i].option); - sendto_one(source_p, ":%s %d %s :%-30s %-5d [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16d [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), info_table[i].name, @@ -866,7 +870,7 @@ send_conf_options(struct Client *source_p) { int option = *((int *) info_table[i].option); - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), info_table[i].name, @@ -882,7 +886,7 @@ send_conf_options(struct Client *source_p) { int option = *((int *) info_table[i].option); - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", get_id(&me, source_p), RPL_INFO, get_id(source_p, source_p), info_table[i].name, @@ -896,7 +900,7 @@ send_conf_options(struct Client *source_p) { int option = *((int *) info_table[i].option); - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + sendto_one(source_p, ":%s %d %s :%-30s %-16s [%s]", me.name, RPL_INFO, source_p->name, info_table[i].name, option ? ((option == 1) ? "MASK" : "YES") : "NO",