]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Patch turning Config->sid from size_t to char **. This also undoes the total fuckery...
[user/henk/code/inspircd.git] / include / configreader.h
index c06bd7fb577f0c4affaac418cbd54a8382344c7f..05194fbeac9badb07a99884304ffe76a20055262 100644 (file)
@@ -232,19 +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);
 
-       std::map<std::string, std::stringstream*> IncludedFiles;
-  
-  public:
+ public:
+
+       std::ostringstream errstr;
+
+       ConfigDataHash newconfig;
+
+       std::map<std::string, std::istream*> IncludedFiles;
+
+       std::map<std::string, bool> 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 };
@@ -254,9 +263,7 @@ class CoreExport ServerConfig : public Extensible
 
        InspIRCd* GetInstance();
 
-       bool Downloading();
-
-       void StartDownloads();
+       void DoDownloads();
          
        /** This holds all the information in the config file,
         * it's indexed by tag name to a vector of key/values.
@@ -606,7 +613,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
         */
@@ -649,12 +656,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, 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 */