X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fconfigreader.h;h=db7258d4e2b8114805eea909017f75ffcc29f789;hb=70be9c79d284982d03744443b84268bef44a3080;hp=36bb3297e5ee88b48067b747bf380262fe4e6464;hpb=51a47e7d757df63370168ab5000d13ca9c349ecd;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/configreader.h b/include/configreader.h index 36bb3297e..db7258d4e 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -31,6 +31,7 @@ #include "modules.h" #include "socketengine.h" #include "socket.h" +#include "token_list.h" /** Structure representing a single \ in config */ class CoreExport ConfigTag : public refcountbase @@ -165,9 +166,8 @@ struct CommandLineConf class CoreExport OperInfo : public refcountbase { public: - typedef insp::flat_set 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 . */ + 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; }