X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fconfigreader.h;h=f3b1f8b741dc27ba58aea1591c832dd72a5b787a;hb=da9adf9e29a1e7e0f914b494972013d0c0c35672;hp=2aab0a075b10c9c878d609b2e03e6332a134583f;hpb=19cc8380fb9060add68852e40846b10e4d1f18f5;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/configreader.h b/include/configreader.h index 2aab0a075..f3b1f8b74 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -58,7 +58,7 @@ class CoreExport ConfigTag : public refcountbase * @param max Maximum acceptable value (optional) * @return The duration in seconds */ - time_t getDuration(const std::string& key, time_t def = 0, long min = LONG_MIN, long max = LONG_MAX); + long getDuration(const std::string& key, long def = 0, long min = LONG_MIN, long max = LONG_MAX); /** Get the value of an option * @param key The option to get @@ -83,8 +83,7 @@ class CoreExport ConfigTag : public refcountbase inline const std::vector& 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*&items); + static ConfigTag* create(const std::string& Tag, const std::string& file, int line, std::vector*& Items); private: ConfigTag(const std::string& Tag, const std::string& file, int line); }; @@ -115,6 +114,8 @@ class ServerLimits size_t MaxAway; /** Maximum line length */ size_t MaxLine; + /** Maximum hostname length */ + size_t MaxHost; /** Creating the class initialises it to the defaults * as in 1.1's ./configure script. Reading other values @@ -122,7 +123,7 @@ class ServerLimits */ ServerLimits() : NickMax(31), ChanMax(64), MaxModes(20), IdentMax(12), MaxQuit(255), MaxTopic(307), MaxKick(255), MaxGecos(128), MaxAway(200), - MaxLine(512) { } + MaxLine(512), MaxHost(64) { } }; struct CommandLineConf @@ -152,11 +153,6 @@ struct CommandLineConf */ bool writelog; - /** True if we have been told to run the testsuite from the commandline, - * rather than entering the mainloop. - */ - bool TestSuite; - /** Saved argc from startup */ int argc; @@ -220,15 +216,15 @@ class CoreExport ServerConfig 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); } + : Config(INSPIRCD_CONFIG_PATH) + , Data(INSPIRCD_DATA_PATH) + , Log(INSPIRCD_LOG_PATH) + , Module(INSPIRCD_MODULE_PATH) { } + + std::string PrependConfig(const std::string& fn) const { return FileSystem::ExpandPath(Config, fn); } + std::string PrependData(const std::string& fn) const { return FileSystem::ExpandPath(Data, fn); } + std::string PrependLog(const std::string& fn) const { return FileSystem::ExpandPath(Log, fn); } + std::string PrependModule(const std::string& fn) const { return FileSystem::ExpandPath(Module, fn); } }; /** Get a configuration tag @@ -303,67 +299,6 @@ class CoreExport ServerConfig */ std::string ServerDesc; - /** Holds the admin's name, for output in - * the /ADMIN command. - */ - std::string AdminName; - - /** Holds the email address of the admin, - * for output in the /ADMIN command. - */ - std::string AdminEmail; - - /** Holds the admin's nickname, for output - * in the /ADMIN command - */ - std::string AdminNick; - - /** The admin-configured /DIE password - */ - std::string diepass; - - /** The admin-configured /RESTART password - */ - std::string restartpass; - - /** The hash method for *BOTH* the die and restart passwords. - */ - std::string powerhash; - - /** The pathname and filename of the message of the - * day file, as defined by the administrator. - */ - std::string motd; - - /** The pathname and filename of the rules file, - * as defined by the administrator. - */ - std::string rules; - - /** The quit prefix in use, or an empty string - */ - std::string PrefixQuit; - - /** The quit suffix in use, or an empty string - */ - std::string SuffixQuit; - - /** The fixed quit message in use, or an empty string - */ - std::string FixedQuit; - - /** The part prefix in use, or an empty string - */ - std::string PrefixPart; - - /** The part suffix in use, or an empty string - */ - std::string SuffixPart; - - /** The fixed part message in use, or an empty string - */ - std::string FixedPart; - /** Pretend disabled commands don't exist. */ bool DisabledDontExist; @@ -484,10 +419,6 @@ class CoreExport ServerConfig */ std::string CustomVersion; - /** List of u-lined servers - */ - std::map ulines; - /** If set to true, provide syntax hints for unknown commands */ bool SyntaxHints; @@ -515,11 +446,11 @@ class CoreExport ServerConfig */ OperIndex OperTypes; - /** Max channels per user + /** Default value for , deprecated in 2.2 */ unsigned int MaxChans; - /** Oper max channels per user + /** Default value for , deprecated in 2.2 */ unsigned int OperMaxChans; @@ -551,30 +482,8 @@ class CoreExport ServerConfig void Fill(); - /** Returns true if the given string starts with a windows drive letter - */ - static bool StartsWithWindowsDriveLetter(const std::string& path); - bool ApplyDisabledCommands(const std::string& data); - /** Clean a filename, stripping the directories (and drives) from string. - * @param name Directory to tidy - * @return The cleaned filename - */ - static const char* CleanFilename(const char* name); - - /** Check if a file exists. - * @param file The full path to a file - * @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? @@ -614,3 +523,14 @@ class CoreExport ConfigReaderThread : public Thread void Finish(); bool IsDone() { return done; } }; + +class CoreExport ConfigStatus +{ + public: + User* const srcuser; + + ConfigStatus(User* user = NULL) + : srcuser(user) + { + } +};