diff options
author | Attila Molnar <attilamolnar@hush.com> | 2013-08-12 09:20:46 -0700 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2013-08-12 09:20:46 -0700 |
commit | 9d4efff3957f1ad163f726bc44bed3a4870afb94 (patch) | |
tree | 85a67980fb21b7a61756761558fef396adad7dd7 /include | |
parent | dafa2f3031c4abc7f5506385770c4fc743669b17 (diff) | |
parent | 29822a263b3b408559257e9ef2bd29167e7573fa (diff) |
Merge pull request #591 from SaberUK/master+config-tweaks
Various patches relating to configuration.
Diffstat (limited to 'include')
-rw-r--r-- | include/configreader.h | 52 | ||||
-rw-r--r-- | include/users.h | 2 |
2 files changed, 41 insertions, 13 deletions
diff --git a/include/configreader.h b/include/configreader.h index 33456d84b..bf5acbbc8 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -44,7 +44,7 @@ class CoreExport ConfigTag : public refcountbase /** Get the value of an option, using def if it does not exist */ std::string getString(const std::string& key, const std::string& def = ""); /** Get the value of an option, using def if it does not exist */ - long getInt(const std::string& key, long def = 0); + long getInt(const std::string& key, long def = 0, long min = LONG_MIN, long max = LONG_MAX); /** Get the value of an option, using def if it does not exist */ double getFloat(const std::string& key, double def = 0); /** Get the value of an option, using def if it does not exist */ @@ -184,6 +184,32 @@ class CoreExport ServerConfig void CrossCheckConnectBlocks(ServerConfig* current); public: + class ServerPaths + { + public: + /** Config path */ + std::string Config; + + /** Data path */ + std::string Data; + + /** Log path */ + std::string Log; + + /** Module path */ + std::string Module; + + ServerPaths() + : Config(CONFIG_PATH) + , Data(DATA_PATH) + , Log(LOG_PATH) + , Module(MOD_PATH) { } + + std::string PrependConfig(const std::string& fn) const { return ServerConfig::ExpandPath(Config, fn); } + std::string PrependData(const std::string& fn) const { return ServerConfig::ExpandPath(Data, fn); } + std::string PrependLog(const std::string& fn) const { return ServerConfig::ExpandPath(Log, fn); } + std::string PrependModule(const std::string& fn) const { return ServerConfig::ExpandPath(Module, fn); } + }; /** Get a configuration tag * @param tag The name of the tag to get @@ -220,6 +246,9 @@ class CoreExport ServerConfig */ ServerLimits Limits; + /** Locations of various types of file (config, module, etc). */ + ServerPaths Paths; + /** Configuration parsed from the command line. */ CommandLineConf cmdline; @@ -239,9 +268,9 @@ class CoreExport ServerConfig */ std::string ServerName; - /** Notice to give to users when they are Xlined + /** Notice to give to users when they are banned by an XLine */ - std::string MoronBanner; + std::string XLineMessage; /* Holds the network name the local server * belongs to. This is an arbitary field defined @@ -333,13 +362,6 @@ class CoreExport ServerConfig */ char DisabledCModes[64]; - /** The full path to the modules directory. - * This is either set at compile time, or - * overridden in the configuration file via - * the \<path> tag. - */ - std::string ModPath; - /** 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. @@ -508,7 +530,7 @@ class CoreExport ServerConfig /** Returns true if the given string starts with a windows drive letter */ - bool StartsWithWindowsDriveLetter(const std::string &path); + static bool StartsWithWindowsDriveLetter(const std::string& path); bool ApplyDisabledCommands(const std::string& data); @@ -523,7 +545,13 @@ class CoreExport ServerConfig * @return True if the file exists and is readable. */ static bool FileExists(const char* file); - + + /** Expands a path fragment to a full path. + * @param base The base path to expand from + * @param fragment The path fragment to expand on top of base. + */ + static std::string ExpandPath(const std::string& base, const std::string& fragment); + /** Escapes a value for storage in a configuration key. * @param str The string to escape. * @param xml Are we using the XML config format? diff --git a/include/users.h b/include/users.h index aaf9b5cda..aa11a2b82 100644 --- a/include/users.h +++ b/include/users.h @@ -133,7 +133,7 @@ struct CoreExport ConnectClass : public refcountbase /** If set to true, no user DNS lookups are to be performed */ - bool nouserdns; + bool resolvehostnames; /** Create a new connect class with no settings. */ |