]> jfr.im git - solanum.git/blobdiff - modules/m_info.c
Mint CLICAP_FLAGS_PRIORITY
[solanum.git] / modules / m_info.c
index bd2171afb385598853bf4e900206d8056e55002d..5046a7fff2484b9900e0ebf17c0a85ecf6873e62 100644 (file)
  *  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"
 #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
@@ -119,7 +120,7 @@ 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_max_lines",
@@ -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",
@@ -242,6 +249,12 @@ static struct InfoStruct info_table[] = {
                &ConfigFileEntry.fname_serverlog,
                "Server connect/disconnect log file"
        },
+       {
+               "fname_killlog",
+               OUTPUT_STRING,
+               &ConfigFileEntry.fname_killlog,
+               "KILL log file"
+       },
        {
                "fname_klinelog",
                OUTPUT_STRING,
@@ -278,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,
@@ -318,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",
@@ -350,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,
@@ -407,7 +402,7 @@ static struct InfoStruct info_table[] = {
        {
                "reject_after_count",
                OUTPUT_DECIMAL,
-               &ConfigFileEntry.reject_after_count,   
+               &ConfigFileEntry.reject_after_count,
                "Client rejection threshold setting",
        },
        {
@@ -479,13 +474,13 @@ static struct InfoStruct info_table[] = {
        {
                "throttle_count",
                OUTPUT_DECIMAL,
-               &ConfigFileEntry.throttle_count, 
+               &ConfigFileEntry.throttle_count,
                "Connection throttle threshold",
        },
        {
                "throttle_duration",
                OUTPUT_DECIMAL,
-               &ConfigFileEntry.throttle_duration, 
+               &ConfigFileEntry.throttle_duration,
                "Connection throttle duration",
        },
        {
@@ -510,7 +505,7 @@ static struct InfoStruct info_table[] = {
                "warn_no_nline",
                OUTPUT_BOOLEAN,
                &ConfigFileEntry.warn_no_nline,
-               "Display warning if connecting server lacks N-line"
+               "Display warning if connecting server lacks connect block"
        },
        {
                "use_propagated_bans",
@@ -530,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,
@@ -584,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,
@@ -632,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,
@@ -665,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;
 
@@ -676,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);
 
@@ -690,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",
@@ -716,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;
 }
 
 /*
@@ -752,11 +762,11 @@ 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(&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(&me, source_p), RPL_INFO,
                        get_id(source_p, source_p), rb_ctime(startup_time, tbuf, sizeof(tbuf)));
 }
 
@@ -775,24 +785,24 @@ 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, 
+                                       infoptr->name, infoptr->intvalue,
                                        infoptr->desc);
                }
                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, 
+                                       infoptr->name, infoptr->strvalue,
                                        infoptr->desc);
                }
        }
@@ -804,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,
@@ -827,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,
@@ -843,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,
@@ -860,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,
@@ -876,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,
@@ -890,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",
@@ -908,7 +918,7 @@ send_conf_options(struct Client *source_p)
 }
 
 /* info_spy()
- * 
+ *
  * input        - pointer to client
  * output       - none
  * side effects - hook doing_info is called