]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Document Module::Prioritize.
[user/henk/code/inspircd.git] / include / configreader.h
index 4cb051efff3d1e9f27928627306f55e19e713ec0..4deef83f49a7b31c8c26f683bf078cea7d55f17d 100644 (file)
@@ -1,11 +1,17 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
- *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- *   Copyright (C) 2007, 2009 Dennis Friis <peavey@inspircd.org>
- *   Copyright (C) 2006-2008 Craig Edwards <craigedwards@brainbox.cc>
- *   Copyright (C) 2006-2008 Robin Burchell <robin+git@viroteck.net>
- *   Copyright (C) 2006 Oliver Lupton <oliverlupton@gmail.com>
+ *   Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
+ *   Copyright (C) 2018 Chris Novakovic <chrisnovakovic@users.noreply.github.com>
+ *   Copyright (C) 2013-2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
+ *   Copyright (C) 2012-2014, 2016-2019 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
+ *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
+ *   Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2007-2008 Craig Edwards <brain@inspircd.org>
+ *   Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
  * redistribute it and/or modify it under the terms of the GNU General Public
@@ -150,22 +156,23 @@ struct CommandLineConf
 
        /** If this is true, a PID file will be written
         * to the file given in the "file" variable of
-        * the <pid> tag in the config file. This is
+        * the \<pid> tag in the config file. This is
         * the default.
         * Passing --nopid as a command line argument
         * sets this to false; in this case, a PID file
         * will not be written, even the default PID
-        * file that is usually written when the <pid>
+        * file that is usually written when the \<pid>
         * tag is not defined in the config file.
         */
        bool writepid;
 
-       /** Saved argc from startup
-        */
+       /* Whether the --runasroot option was specified at boot. */
+       bool runasroot;
+
+       /** Saved argc from startup. */
        int argc;
 
-       /** Saved argv from startup
-        */
+       /** Saved argv from startup. */
        char** argv;
 };
 
@@ -256,11 +263,16 @@ class CoreExport ServerConfig
         */
        typedef insp::flat_map<std::string, reference<OperInfo> > OperIndex;
 
-       /** Get a configuration tag
-        * @param tag The name of the tag to get
+       /** Get a configuration tag by name. If one or more tags are present then the first is returned.
+        * @param tag The name of the tag to get.
+        * @returns Either a tag from the config or EmptyTag.
         */
        ConfigTag* ConfValue(const std::string& tag);
 
+       /** Get a list of configuration tags by name.
+        * @param tag The name of the tags to get.
+        * @returns Either a list of tags from the config or an empty ConfigTagList.
+        */
        ConfigTagList ConfTags(const std::string& tag);
 
        /** An empty configuration tag. */
@@ -327,24 +339,6 @@ class CoreExport ServerConfig
         */
        std::string ServerDesc;
 
-       /** Pretend disabled commands don't exist.
-        */
-       bool DisabledDontExist;
-
-       /** This variable identifies which usermodes have been diabled.
-        */
-       std::bitset<64> DisabledUModes;
-
-       /** This variable identifies which chanmodes have been disabled.
-        */
-       std::bitset<64> DisabledCModes;
-
-       /** If set to true, then all opers on this server are
-        * shown with a generic 'is an IRC operator' line rather
-        * than the oper type. Oper types are still used internally.
-        */
-       bool GenericOper;
-
        /** How to treat a user in a channel who is banned. */
        BannedUserTreatment RestrictBannedUsers;
 
@@ -377,12 +371,11 @@ class CoreExport ServerConfig
         */
        unsigned int MaxTargets;
 
-       /** True if we're going to hide netsplits as *.net *.split for non-opers
-        */
-       bool HideSplits;
+       /** The number of seconds that the server clock can skip by before server operators are warned. */
+       time_t TimeSkipWarn;
 
-       /** True if we're going to hide ban reasons for non-opers (e.g. G-Lines,
-        * K-Lines, Z-Lines)
+       /** True if we're going to hide ban reasons for non-opers (e.g. G-lines,
+        * K-lines, Z-lines)
         */
        bool HideBans;
 
@@ -392,14 +385,6 @@ class CoreExport ServerConfig
        /** Set to a non-empty string to obfuscate server names. */
        std::string HideServer;
 
-       /** Set to a non empty string to obfuscate nicknames prepended to a KILL.
-        */
-       std::string HideKillsServer;
-
-       /** Set to hide kills from clients of ulined servers in snotices.
-        */
-       bool HideULineKills;
-
        /** The full pathname and filename of the PID
         * file as defined in the configuration.
         */
@@ -409,11 +394,6 @@ class CoreExport ServerConfig
         */
        ClassVector Classes;
 
-       /** STATS characters in this list are available
-        * only to operators.
-        */
-       std::string UserStats;
-
        /** Default channel modes
         */
        std::string DefaultModes;
@@ -481,9 +461,6 @@ class CoreExport ServerConfig
 
        void Fill();
 
-       /** Disables the commands specified in <disabled:commands>. */
-       bool ApplyDisabledCommands();
-
        /** Escapes a value for storage in a configuration key.
         * @param str The string to escape.
         * @param xml Are we using the XML config format?
@@ -520,13 +497,23 @@ class CoreExport ConfigReaderThread : public Thread
        bool IsDone() { return done; }
 };
 
+/** Represents the status of a config load. */
 class CoreExport ConfigStatus
 {
  public:
+       /** Whether this is the initial config load. */
+       bool const initial;
+
+       /** The user who initiated the config load or NULL if not initiated by a user. */
        User* const srcuser;
 
-       ConfigStatus(User* user = NULL)
-               : srcuser(user)
+       /** Initializes a new instance of the ConfigStatus class.
+        * @param user The user who initiated the config load or NULL if not initiated by a user.
+        * @param isinitial Whether this is the initial config load.
+        */
+       ConfigStatus(User* user = NULL, bool isinitial = false)
+               : initial(isinitial)
+               , srcuser(user)
        {
        }
 };