]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Move OnSync{Channel,Network,User} to ServerEventListener.
[user/henk/code/inspircd.git] / include / configreader.h
index 36bb3297e5ee88b48067b747bf380262fe4e6464..db7258d4e2b8114805eea909017f75ffcc29f789 100644 (file)
@@ -31,6 +31,7 @@
 #include "modules.h"
 #include "socketengine.h"
 #include "socket.h"
+#include "token_list.h"
 
 /** Structure representing a single \<tag> in config */
 class CoreExport ConfigTag : public refcountbase
@@ -165,9 +166,8 @@ struct CommandLineConf
 class CoreExport OperInfo : public refcountbase
 {
  public:
-       typedef insp::flat_set<std::string> PrivSet;
-       PrivSet AllowedOperCommands;
-       PrivSet AllowedPrivs;
+       TokenList AllowedOperCommands;
+       TokenList AllowedPrivs;
 
        /** Allowed user modes from oper classes. */
        std::bitset<64> AllowedUserModes;
@@ -184,6 +184,11 @@ class CoreExport OperInfo : public refcountbase
        /** Name of the oper type; i.e. the one shown in WHOIS */
        std::string name;
 
+       /** Creates a new OperInfo with the specified oper type name.
+        * @param Name The name of the oper type.
+        */
+       OperInfo(const std::string& Name);
+
        /** Get a configuration item, searching in the oper, type, and class blocks (in that order) */
        std::string getConfig(const std::string& key);
        void init();
@@ -280,12 +285,12 @@ class CoreExport ServerConfig
        /** Clones CIDR range for ipv4 (0-32)
         * Defaults to 32 (checks clones on all IPs seperately)
         */
-       int c_ipv4_range;
+       unsigned char c_ipv4_range;
 
        /** Clones CIDR range for ipv6 (0-128)
         * Defaults to 128 (checks on all IPs seperately)
         */
-       int c_ipv6_range;
+       unsigned char c_ipv6_range;
 
        /** Holds the server name of the local server
         * as defined by the administrator.
@@ -311,19 +316,13 @@ class CoreExport ServerConfig
         */
        bool DisabledDontExist;
 
-       /** This variable contains a space-seperated list
-        * of commands which are disabled by the
-        * administrator of the server for non-opers.
-        */
-       std::string DisabledCommands;
-
        /** This variable identifies which usermodes have been diabled.
         */
-       char DisabledUModes[64];
+       std::bitset<64> DisabledUModes;
 
        /** This variable identifies which chanmodes have been disabled.
         */
-       char DisabledCModes[64];
+       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
@@ -484,7 +483,8 @@ class CoreExport ServerConfig
 
        void Fill();
 
-       bool ApplyDisabledCommands(const std::string& data);
+       /** Disables the commands specified in <disabled:commands>. */
+       bool ApplyDisabledCommands();
 
        /** Escapes a value for storage in a configuration key.
         * @param str The string to escape.
@@ -516,7 +516,7 @@ class CoreExport ConfigReaderThread : public Thread
                delete Config;
        }
 
-       void Run();
+       void Run() CXX11_OVERRIDE;
        /** Run in the main thread to apply the configuration */
        void Finish();
        bool IsDone() { return done; }