]> 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 76ca6084ac62b42c6c33257a82d82327e17e5c63..05194fbeac9badb07a99884304ffe76a20055262 100644 (file)
@@ -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);
+       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);
+       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<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 };
@@ -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.
@@ -503,14 +516,6 @@ class CoreExport ServerConfig : public Extensible
         */
        std::vector<ListenSocket*> ports;
 
-       /** Boolean sets of which modules implement which functions
-        */
-       char implement_lists[255][255];
-
-       /** Global implementation list
-        */
-       char global_implementation[255];
-
        /** A list of ports claimed by IO Modules
         */
        std::map<int,Module*> IOHookModule;
@@ -608,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
         */
@@ -634,7 +639,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
         */
@@ -651,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);
+       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);
+       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 */