X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/c71a6e3bed32689256460fb072d31696eb8cf4cc..b2c208be091670e3c5259eba77187bae6ac6eece:/modules/m_info.c diff --git a/modules/m_info.c b/modules/m_info.c index 50fbac81..9d11ee4f 100644 --- a/modules/m_info.c +++ b/modules/m_info.c @@ -119,14 +119,38 @@ static struct InfoStruct info_table[] = { "client_exit", OUTPUT_BOOLEAN, &ConfigFileEntry.client_exit, - "Prepend 'Client Exit:' to user QUIT messages" + "Prepend 'Quit:' to user QUIT messages" }, { - "client_flood", + "client_flood_max_lines", OUTPUT_DECIMAL, - &ConfigFileEntry.client_flood, + &ConfigFileEntry.client_flood_max_lines, "Number of lines before a client Excess Flood's", }, + { + "client_flood_burst_rate", + OUTPUT_DECIMAL, + &ConfigFileEntry.client_flood_burst_rate, + "Maximum lines per second during flood grace period", + }, + { + "client_flood_burst_max", + OUTPUT_DECIMAL, + &ConfigFileEntry.client_flood_burst_max, + "Number of lines to process at once before delaying", + }, + { + "client_flood_message_num", + OUTPUT_DECIMAL, + &ConfigFileEntry.client_flood_message_num, + "Number of messages to allow per client_flood_message_time outside of burst", + }, + { + "client_flood_message_time", + OUTPUT_DECIMAL, + &ConfigFileEntry.client_flood_message_time, + "Time to allow per client_flood_message_num outside of burst", + }, { "connect_timeout", OUTPUT_DECIMAL, @@ -494,6 +518,18 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.use_propagated_bans, "KLINE sets fully propagated bans" }, + { + "max_ratelimit_tokens", + OUTPUT_DECIMAL, + &ConfigFileEntry.max_ratelimit_tokens, + "The maximum number of tokens that can be accumulated for executing rate-limited commands", + }, + { + "away_interval", + OUTPUT_DECIMAL, + &ConfigFileEntry.away_interval, + "The minimum time between aways", + }, { "default_split_server_count", OUTPUT_DECIMAL, @@ -524,6 +560,12 @@ static struct InfoStruct info_table[] = { &ConfigChannel.kick_on_split_riding, "Kick users riding splits to join +i or +k channels" }, + { + "disable_local_channels", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.disable_local_channels, + "Disable local channels (&channels)" + }, { "max_bans", OUTPUT_DECIMAL, @@ -620,9 +662,9 @@ static struct InfoStruct info_table[] = { /* *INDENT-ON* */ /* -** m_info -** parv[1] = servername -*/ + ** m_info + ** parv[1] = servername + */ static int m_info(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { @@ -632,7 +674,7 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p { /* safe enough to give this on a local connect only */ sendto_one(source_p, form_str(RPL_LOAD2HI), - me.name, source_p->name, "INFO"); + me.name, source_p->name, "INFO"); sendto_one_numeric(source_p, RPL_ENDOFINFO, form_str(RPL_ENDOFINFO)); return 0; } @@ -652,9 +694,9 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p } /* -** mo_info -** parv[1] = servername -*/ + ** mo_info + ** parv[1] = servername + */ static int mo_info(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { @@ -710,12 +752,12 @@ send_birthdate_online_time(struct Client *source_p) { char tbuf[26]; /* this needs to be 26 - see ctime_r manpage */ sendto_one(source_p, ":%s %d %s :Birth Date: %s, compile # %s", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), creation, generation); + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), creation, generation); sendto_one(source_p, ":%s %d %s :On-line since %s", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), rb_ctime(startup_time, tbuf, sizeof(tbuf))); + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), rb_ctime(startup_time, tbuf, sizeof(tbuf))); } /* @@ -740,18 +782,18 @@ send_conf_options(struct Client *source_p) if(infoptr->intvalue) { sendto_one(source_p, ":%s %d %s :%-30s %-5d [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - infoptr->name, infoptr->intvalue, - infoptr->desc); + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + infoptr->name, infoptr->intvalue, + infoptr->desc); } else { sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - infoptr->name, infoptr->strvalue, - infoptr->desc); + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + infoptr->name, infoptr->strvalue, + infoptr->desc); } } @@ -765,95 +807,95 @@ send_conf_options(struct Client *source_p) /* * For "char *" references */ - case OUTPUT_STRING: - { - char *option = *((char **) info_table[i].option); - - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - info_table[i].name, - option ? option : "NONE", - info_table[i].desc ? info_table[i].desc : ""); - - break; - } - /* - * For "char foo[]" references - */ - case OUTPUT_STRING_PTR: - { - char *option = (char *) info_table[i].option; - - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - info_table[i].name, - EmptyString(option) ? "NONE" : option, - info_table[i].desc ? info_table[i].desc : ""); - - break; - } - /* - * Output info_table[i].option as a decimal value. - */ - case OUTPUT_DECIMAL: - { - int option = *((int *) info_table[i].option); - - sendto_one(source_p, ":%s %d %s :%-30s %-5d [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - info_table[i].name, - option, - info_table[i].desc ? info_table[i].desc : ""); - - break; - } - - /* - * Output info_table[i].option as "ON" or "OFF" - */ - case OUTPUT_BOOLEAN: - { - int option = *((int *) info_table[i].option); - - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - info_table[i].name, - option ? "ON" : "OFF", - info_table[i].desc ? info_table[i].desc : ""); - - break; - } - /* - * Output info_table[i].option as "YES" or "NO" - */ - case OUTPUT_BOOLEAN_YN: - { - int option = *((int *) info_table[i].option); - - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), - info_table[i].name, - option ? "YES" : "NO", - info_table[i].desc ? info_table[i].desc : ""); - - break; - } - - case OUTPUT_BOOLEAN2: - { - int option = *((int *) info_table[i].option); - - sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", - me.name, RPL_INFO, source_p->name, - info_table[i].name, - option ? ((option == 1) ? "MASK" : "YES") : "NO", - info_table[i].desc ? info_table[i].desc : ""); - } /* switch (info_table[i].output_type) */ + case OUTPUT_STRING: + { + char *option = *((char **) info_table[i].option); + + sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + info_table[i].name, + option ? option : "NONE", + info_table[i].desc ? info_table[i].desc : ""); + + break; + } + /* + * For "char foo[]" references + */ + case OUTPUT_STRING_PTR: + { + char *option = (char *) info_table[i].option; + + sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + info_table[i].name, + EmptyString(option) ? "NONE" : option, + info_table[i].desc ? info_table[i].desc : ""); + + break; + } + /* + * Output info_table[i].option as a decimal value. + */ + case OUTPUT_DECIMAL: + { + int option = *((int *) info_table[i].option); + + sendto_one(source_p, ":%s %d %s :%-30s %-5d [%-30s]", + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + info_table[i].name, + option, + info_table[i].desc ? info_table[i].desc : ""); + + break; + } + + /* + * Output info_table[i].option as "ON" or "OFF" + */ + case OUTPUT_BOOLEAN: + { + int option = *((int *) info_table[i].option); + + sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + info_table[i].name, + option ? "ON" : "OFF", + info_table[i].desc ? info_table[i].desc : ""); + + break; + } + /* + * Output info_table[i].option as "YES" or "NO" + */ + case OUTPUT_BOOLEAN_YN: + { + int option = *((int *) info_table[i].option); + + sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + get_id(&me, source_p), RPL_INFO, + get_id(source_p, source_p), + info_table[i].name, + option ? "YES" : "NO", + info_table[i].desc ? info_table[i].desc : ""); + + break; + } + + case OUTPUT_BOOLEAN2: + { + int option = *((int *) info_table[i].option); + + sendto_one(source_p, ":%s %d %s :%-30s %-5s [%-30s]", + me.name, RPL_INFO, source_p->name, + info_table[i].name, + option ? ((option == 1) ? "MASK" : "YES") : "NO", + info_table[i].desc ? info_table[i].desc : ""); + } /* switch (info_table[i].output_type) */ } } /* forloop */