X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fconfigreader.h;h=fb187048b3f6a2030af6a96bf45ceebde33a212b;hb=db90a4e900119da63316eeaa184da04f51bb7c6f;hp=394d7f0f677050b8492d9394c7b12ba3514a8c6b;hpb=5e1f2c1728b200951c0f192f2e2c6b83d53c879c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/configreader.h b/include/configreader.h index 394d7f0f6..fb187048b 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * InspIRCd: (C) 2002-2008 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -187,11 +187,11 @@ struct MultiConfig /** Tag name */ const char* tag; /** One or more items within tag */ - char* items[17]; + char* items[18]; /** One or more defaults for items within tags */ - char* items_default[17]; + char* items_default[18]; /** One or more data types */ - int datatype[17]; + int datatype[18]; /** Initialization function */ MultiNotify init_function; /** Validation function */ @@ -232,17 +232,28 @@ class CoreExport ServerConfig : public Extensible * configutation, appending errors to errorstream * and setting error if an error has occured. */ - bool ParseLine(ConfigDataHash &target, std::string &line, long &linenumber, std::ostringstream &errorstream, int pass); + bool ParseLine(ConfigDataHash &target, std::string &line, long &linenumber, std::ostringstream &errorstream, int pass, std::istream* scan_for_includes_only); /** Process an include directive */ - bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream, int pass); + bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream, int pass, std::istream* scan_for_includes_only); /** Check that there is only one of each configuration item */ bool CheckOnce(char* tag); - - public: + + public: + + std::ostringstream errstr; + + ConfigDataHash newconfig; + + std::map IncludedFiles; + + std::map CompletedFiles; + + size_t TotalDownloaded; + size_t FileErrors; /** Used to indicate who we announce invites to on a channel */ enum InviteAnnounceState { INVITE_ANNOUNCE_NONE, INVITE_ANNOUNCE_ALL, INVITE_ANNOUNCE_OPS, INVITE_ANNOUNCE_DYNAMIC }; @@ -251,6 +262,8 @@ class CoreExport ServerConfig : public Extensible Validator DNSServerValidator; InspIRCd* GetInstance(); + + void DoDownloads(); /** This holds all the information in the config file, * it's indexed by tag name to a vector of key/values. @@ -313,6 +326,10 @@ class CoreExport ServerConfig : public Extensible */ char restartpass[MAXBUF]; + /** The hash method for *BOTH* the die and restart passwords. + */ + char powerhash[MAXBUF]; + /** The pathname and filename of the message of the * day file, as defined by the administrator. */ @@ -335,6 +352,18 @@ class CoreExport ServerConfig : public Extensible */ char FixedQuit[MAXBUF]; + /** The part prefix in use, or an empty string + */ + char PrefixPart[MAXBUF]; + + /** The part suffix in use, or an empty string + */ + char SuffixPart[MAXBUF]; + + /** The fixed part message in use, or an empty string + */ + char FixedPart[MAXBUF]; + /** The last string found within a tag, or * an empty string. */ @@ -600,7 +629,7 @@ class CoreExport ServerConfig : public Extensible * makes code simpler. 0AA, 1BB etc with letters are reserved * for services use. */ - int sid; + char sid[MAXBUF]; /** Construct a new ServerConfig */ @@ -626,7 +655,7 @@ class CoreExport ServerConfig : public Extensible * and initialize this class. All other methods * should be used only by the core. */ - void Read(bool bail, User* user); + void Read(bool bail, User* user, int pass); /** Read a file into a file_cache object */ @@ -636,19 +665,19 @@ class CoreExport ServerConfig : public Extensible * @param bail If this is set to true, the error is sent to the console, and the program exits * @param user If this is set to a non-null value, and bail is false, the errors are spooled to * this user as SNOTICEs. - * If the parameter is NULL, the messages are spooled to all users via WriteOpers as SNOTICEs. + * If the parameter is NULL, the messages are spooled to all opers. */ void ReportConfigError(const std::string &errormessage, bool bail, User* user); /** Load 'filename' into 'target', with the new config parser everything is parsed into * tag/key/value at load-time rather than at read-value time. */ - bool LoadConf(ConfigDataHash &target, const char* filename, std::ostringstream &errorstream, int pass); + bool LoadConf(ConfigDataHash &target, const char* filename, std::ostringstream &errorstream, int pass, std::istream* scan_for_includs_only); /** Load 'filename' into 'target', with the new config parser everything is parsed into * tag/key/value at load-time rather than at read-value time. */ - bool LoadConf(ConfigDataHash &target, const std::string &filename, std::ostringstream &errorstream, int pass); + bool LoadConf(ConfigDataHash &target, const std::string &filename, std::ostringstream &errorstream, int pass, std::istream* scan_for_includs_only = NULL); /* Both these return true if the value existed or false otherwise */