X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/8db00894ab7750513d8750290e508b5802bc1fc5..8097430a810ac1535fe5304f74991b16ff58b064:/modules/m_info.c diff --git a/modules/m_info.c b/modules/m_info.c index e265e9f..e829127 100644 --- a/modules/m_info.c +++ b/modules/m_info.c @@ -29,7 +29,7 @@ #include "channel.h" #include "client.h" #include "common.h" -#include "irc_string.h" +#include "match.h" #include "ircd.h" #include "hook.h" #include "numeric.h" @@ -91,11 +91,11 @@ static struct InfoStruct info_table[] = { &opers_see_all_users, "Farconnect notices available or operspy accountability limited" }, - { - "max_connections", - OUTPUT_DECIMAL, - &maxconnections, - "Max number connections" + { + "max_connections", + OUTPUT_DECIMAL, + &maxconnections, + "Max number connections" }, { "anti_nick_flood", @@ -109,6 +109,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.anti_spam_exit_message_time, "Duration a client must be connected for to have an exit message" }, + { + "use_part_messages", + OUTPUT_BOOLEAN_YN, + &ConfigFileEntry.use_part_messages, + "Whether or not the server should allow users to show messages on PART" + }, { "caller_id_wait", OUTPUT_DECIMAL, @@ -151,6 +157,18 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.default_operstring, "Default operstring at startup.", }, + { + "default_operhost", + OUTPUT_STRING, + &ConfigFileEntry.default_operhost, + "Default vhost for operators to receive upon opering up.", + }, + { + "static_quit", + OUTPUT_STRING, + &ConfigFileEntry.static_quit, + "Quit message to show for all users.", + }, { "servicestring", OUTPUT_STRING, @@ -175,6 +193,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.dots_in_ident, "Number of permissable dots in an ident" }, + { + "expire_override_time", + OUTPUT_DECIMAL, + &ConfigFileEntry.expire_override_time, + "Period of time after which to unset user mode +p" + }, { "failed_oper_notice", OUTPUT_BOOLEAN, @@ -218,12 +242,6 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.fname_klinelog, "KLINE etc log file" }, - { - "fname_glinelog", - OUTPUT_STRING, - &ConfigFileEntry.fname_glinelog, - "GLINE log file" - }, { "fname_operspylog", OUTPUT_STRING, @@ -236,30 +254,6 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.fname_ioerrorlog, "IO error log file" }, - { - "glines", - OUTPUT_BOOLEAN, - &ConfigFileEntry.glines, - "G-line (network-wide K-line) support" - }, - { - "gline_time", - OUTPUT_DECIMAL, - &ConfigFileEntry.gline_time, - "Expiry time for G-lines" - }, - { - "gline_min_cidr", - OUTPUT_DECIMAL, - &ConfigFileEntry.gline_min_cidr, - "Minimum CIDR bitlen for ipv4 glines" - }, - { - "gline_min_cidr6", - OUTPUT_DECIMAL, - &ConfigFileEntry.gline_min_cidr6, - "Minimum CIDR bitlen for ipv6 glines" - }, { "global_snotices", OUTPUT_BOOLEAN_YN, @@ -336,7 +330,7 @@ static struct InfoStruct info_table[] = { "min_nonwildcard", OUTPUT_DECIMAL, &ConfigFileEntry.min_nonwildcard, - "Minimum non-wildcard chars in K/G lines", + "Minimum non-wildcard chars in K lines", }, { "min_nonwildcard_simple", @@ -356,6 +350,18 @@ static struct InfoStruct info_table[] = { &ServerInfo.network_desc, "Network description" }, + { + "autochanmodes", + OUTPUT_STRING, + &ConfigChannel.autochanmodes, + "Channelmodes set on channel creation" + }, + { + "exemptchanops", + OUTPUT_STRING, + &ConfigChannel.exemptchanops, + "Channelmodes that chanops are exempt from" + }, { "nick_delay", OUTPUT_DECIMAL, @@ -368,6 +374,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.no_oper_flood, "Disable flood control for operators", }, + { + "true_no_oper_flood", + OUTPUT_BOOLEAN, + &ConfigFileEntry.true_no_oper_flood, + "Really disable flood control for opers, not just make it very high", + }, { "non_redundant_klines", OUTPUT_BOOLEAN, @@ -386,6 +398,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.operspy_dont_care_user_info, "Remove accountability and some '!' requirement from non-channel operspy" }, + { + "secret_channels_in_whois", + OUTPUT_BOOLEAN, + &ConfigFileEntry.secret_channels_in_whois, + "Defines whether secret channels are always shown in whois to opers with oper:spy priv." + }, { "pace_wait", OUTPUT_DECIMAL, @@ -476,6 +494,18 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.stats_y_oper_only, "STATS Y is only shown to operators", }, + { + "throttle_count", + OUTPUT_DECIMAL, + &ConfigFileEntry.throttle_count, + "Connection throttle threshold", + }, + { + "throttle_duration", + OUTPUT_DECIMAL, + &ConfigFileEntry.throttle_duration, + "Connection throttle duration", + }, { "tkline_expire_notices", OUTPUT_BOOLEAN, @@ -500,6 +530,12 @@ static struct InfoStruct info_table[] = { &ConfigFileEntry.warn_no_nline, "Display warning if connecting server lacks N-line" }, + { + "use_propagated_bans", + OUTPUT_BOOLEAN, + &ConfigFileEntry.use_propagated_bans, + "KLINE sets fully propagated bans" + }, { "default_split_server_count", OUTPUT_DECIMAL, @@ -560,6 +596,36 @@ static struct InfoStruct info_table[] = { &ConfigChannel.no_join_on_split, "Disallow joining channels when split", }, + { + "only_ascii_channels", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.only_ascii_channels, + "Controls whether non-ASCII is disabled for JOIN" + }, + { + "cycle_host_change", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.cycle_host_change, + "Controls if when a users' host changes, they cycle channels", + }, + { + "host_in_topic", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.host_in_topic, + "Defines whether a topicsetters host or just nick is shown on TOPIC", + }, + { + "use_halfop", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.use_halfop, + "Enable chanmode +h (halfop)", + }, + { + "use_admin", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.use_admin, + "Enable chanmode +a (admin)", + }, { "use_except", OUTPUT_BOOLEAN_YN, @@ -584,6 +650,24 @@ static struct InfoStruct info_table[] = { &ConfigChannel.use_knock, "Enable /KNOCK", }, + { + "use_local_channels", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.use_local_channels, + "Enable local channels (&channels)" + }, + { + "resv_forcepart", + OUTPUT_BOOLEAN_YN, + &ConfigChannel.resv_forcepart, + "Force-part local users on channel RESV" + }, + { + "kick_no_rejoin_time", + OUTPUT_DECIMAL, + &ConfigChannel.kick_no_rejoin_time, + "The amount of time that a user cannot rejoin a +J channel for after being kicked." + }, { "disable_hidden", OUTPUT_BOOLEAN_YN, @@ -615,7 +699,6 @@ static struct InfoStruct info_table[] = { /* ** m_info -** parv[0] = sender prefix ** parv[1] = servername */ static int @@ -639,7 +722,6 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p info_spy(source_p); - SetCork(source_p); send_info_text(source_p); send_birthdate_online_time(source_p); @@ -649,7 +731,6 @@ m_info(struct Client *client_p, struct Client *source_p, int parc, const char *p /* ** mo_info -** parv[0] = sender prefix ** parv[1] = servername */ static int @@ -661,7 +742,11 @@ mo_info(struct Client *client_p, struct Client *source_p, int parc, const char * send_info_text(source_p); if(IsOper(source_p)) + { send_conf_options(source_p); + sendto_one_numeric(source_p, RPL_INFO, ":%s", + rb_lib_version()); + } send_birthdate_online_time(source_p); @@ -701,13 +786,14 @@ send_info_text(struct Client *source_p) static void 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); sendto_one(source_p, ":%s %d %s :On-line since %s", get_id(&me, source_p), RPL_INFO, - get_id(source_p, source_p), myctime(startup_time)); + get_id(source_p, source_p), rb_ctime(startup_time, tbuf, sizeof(tbuf))); } /*