]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Begin rethink on this. Warning, this WILL break your ircd if youre using trunk!
[user/henk/code/inspircd.git] / include / configreader.h
index 617059cf44c5584a5b9bef9c157d393937838d72..c06bd7fb577f0c4affaac418cbd54a8382344c7f 100644 (file)
@@ -232,15 +232,17 @@ 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);
+       bool ParseLine(ConfigDataHash &target, std::string &line, long &linenumber, std::ostringstream &errorstream, int pass);
   
        /** Process an include directive
         */
-       bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream);
+       bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream, int pass);
 
        /** Check that there is only one of each configuration item
         */
        bool CheckOnce(char* tag);
+
+       std::map<std::string, std::stringstream*> IncludedFiles;
   
   public:
 
@@ -251,6 +253,10 @@ class CoreExport ServerConfig : public Extensible
        Validator DNSServerValidator;
 
        InspIRCd* GetInstance();
+
+       bool Downloading();
+
+       void StartDownloads();
          
        /** This holds all the information in the config file,
         * it's indexed by tag name to a vector of key/values.
@@ -626,7 +632,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
         */
@@ -643,12 +649,12 @@ class CoreExport ServerConfig : public Extensible
        /** 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);
+       bool LoadConf(ConfigDataHash &target, const char* filename, std::ostringstream &errorstream, int pass);
 
        /** 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);
+       bool LoadConf(ConfigDataHash &target, const std::string &filename, std::ostringstream &errorstream, int pass);
        
        /* Both these return true if the value existed or false otherwise */