]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Switch <stdint.h> test to use a test file too.
[user/henk/code/inspircd.git] / include / configreader.h
index f42bf67fea6c1c5adf3bbe820fc84457b1b55b10..b01a979a7c2703384bb17155e52688370af0d3df 100644 (file)
@@ -33,7 +33,7 @@
 #include "socketengine.h"
 #include "socket.h"
 
-/** Structure representing a single <tag> in config */
+/** Structure representing a single \<tag> in config */
 class CoreExport ConfigTag : public refcountbase
 {
        std::vector<KeyVal> items;
@@ -64,8 +64,7 @@ class CoreExport ConfigTag : public refcountbase
        inline const std::vector<KeyVal>& getItems() const { return items; }
 
        /** Create a new ConfigTag, giving access to the private KeyVal item list */
-       static ConfigTag* create(const std::string& Tag, const std::string& file, int line,
-               std::vector<KeyVal>*&items);
+       static ConfigTag* create(const std::string& Tag, const std::string& file, int line, std::vector<KeyVal>*& Items);
  private:
        ConfigTag(const std::string& Tag, const std::string& file, int line);
 };
@@ -102,21 +101,6 @@ class ServerLimits
        ServerLimits() : NickMax(31), ChanMax(64), MaxModes(20), IdentMax(12), MaxQuit(255), MaxTopic(307), MaxKick(255), MaxGecos(128), MaxAway(200)
        {
        }
-
-       /** Finalises the settings by adding one. This allows for them to be used as-is
-        * without a 'value+1' when using the std::string assignment methods etc.
-        */
-       void Finalise()
-       {
-               NickMax++;
-               ChanMax++;
-               IdentMax++;
-               MaxQuit++;
-               MaxTopic++;
-               MaxKick++;
-               MaxGecos++;
-               MaxAway++;
-       }
 };
 
 struct CommandLineConf
@@ -174,11 +158,11 @@ class CoreExport OperInfo : public refcountbase
        /** Allowed channel modes from oper classes. */
        std::bitset<64> AllowedChanModes;
 
-       /** <oper> block used for this oper-up. May be NULL. */
+       /** \<oper> block used for this oper-up. May be NULL. */
        reference<ConfigTag> oper_block;
-       /** <type> block used for this oper-up. Valid for local users, may be NULL on remote */
+       /** \<type> block used for this oper-up. Valid for local users, may be NULL on remote */
        reference<ConfigTag> type_block;
-       /** <class> blocks referenced from the <type> block. These define individual permissions */
+       /** \<class> blocks referenced from the \<type> block. These define individual permissions */
        std::vector<reference<ConfigTag> > class_blocks;
        /** Name of the oper type; i.e. the one shown in WHOIS */
        std::string name;
@@ -208,12 +192,14 @@ class CoreExport ServerConfig
 
        /** Get a configuration tag
         * @param tag The name of the tag to get
-        * @param offset get the Nth occurance of the tag
         */
        ConfigTag* ConfValue(const std::string& tag);
 
        ConfigTagList ConfTags(const std::string& tag);
 
+       /** An empty configuration tag. */
+       ConfigTag* EmptyTag;
+
        /** Error stream, contains error output from any failed configuration parsing.
         */
        std::stringstream errstr;
@@ -375,7 +361,7 @@ class CoreExport ServerConfig
        /** The full path to the modules directory.
         * This is either set at compile time, or
         * overridden in the configuration file via
-        * the <path> tag.
+        * the \<path> tag.
         */
        std::string ModPath;
 
@@ -391,7 +377,7 @@ class CoreExport ServerConfig
        bool RestrictBannedUsers;
 
        /** If this is set to true, then mode lists (e.g
-        * MODE #chan b) are hidden from unprivileged
+        * MODE \#chan b) are hidden from unprivileged
         * users.
         */
        bool HideModeLists[256];
@@ -515,7 +501,7 @@ class CoreExport ServerConfig
         */
        bool UndernetMsgPrefix;
 
-       /** If set to true, the full nick!user@host will be shown in the TOPIC command
+       /** If set to true, the full nick!user\@host will be shown in the TOPIC command
         * for who set the topic last. If false, only the nick is shown.
         */
        bool FullHostInTopic;
@@ -544,9 +530,11 @@ class CoreExport ServerConfig
         */
        ServerConfig();
 
+       ~ServerConfig();
+
        /** Get server ID as string with required leading zeroes
         */
-       std::string GetSID();
+       const std::string& GetSID();
 
        /** Update the 005 vector
         */
@@ -569,7 +557,7 @@ class CoreExport ServerConfig
 
        void Fill();
 
-       /* Returns true if the given string starts with a windows drive letter
+       /** Returns true if the given string starts with a windows drive letter
         */
        bool StartsWithWindowsDriveLetter(const std::string &path);
 
@@ -595,6 +583,10 @@ class CoreExport ServerConfig
         */
        bool NoSnoticeStack;
 
+       /** If true, a "Welcome to <networkname>!" NOTICE will be sent to
+        * connecting users
+        */
+       bool WelcomeNotice;
 };
 
 /** The background thread for config reading, so that reading from executable includes