#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
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;
/** 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();
/** 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.
*/
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
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.
delete Config;
}
- void Run();
+ void Run() CXX11_OVERRIDE;
/** Run in the main thread to apply the configuration */
void Finish();
bool IsDone() { return done; }