]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
More stuff
[user/henk/code/inspircd.git] / include / configreader.h
index 3774f32628fb7cdd220269d46494f30ae8bcbda3..3d889f9439f4724408a1bcb4b8eb4817db6e3d3d 100644 (file)
@@ -68,10 +68,8 @@ class ValueItem
        /** Initialize with a bool */
        ValueItem(bool value);
        /** Initialize with a char pointer */
-       ValueItem(char* value);
+       ValueItem(const char* value);
        /** Change value to a char pointer */
-       void Set(char* value);
-       /** Change value to a const char pointer */
        void Set(const char* val);
        /** Change value to an int */
        void Set(int value);
@@ -166,11 +164,11 @@ typedef bool (*MultiNotify)(ServerConfig* conf, const char*);
 struct InitialConfig
 {
        /** Tag name */
-       char* tag;
+       const char* tag;
        /** Value name */
-       char* value;
+       const char* value;
        /** Default, if not defined */
-       char* default_value;
+       const char* default_value;
        /** Value containers */
        ValueContainerBase* val;
        /** Data types */
@@ -187,11 +185,11 @@ struct MultiConfig
        /** Tag name */
        const char*     tag;
        /** One or more items within tag */
-       char*           items[17];
+       const char*     items[18];
        /** One or more defaults for items within tags */
-       char*           items_default[17];
+       const char* items_default[18];
        /** One or more data types */
-       int             datatype[17];
+       int             datatype[18];
        /** Initialization function */
        MultiNotify     init_function;
        /** Validation function */
@@ -232,18 +230,22 @@ 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, std::istream* scan_for_includes_only);
+       bool ParseLine(ConfigDataHash &target, std::string &line, long &linenumber, std::ostringstream &errorstream);
   
        /** Process an include directive
         */
-       bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream, int pass, std::istream* scan_for_includes_only);
+       bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream);
 
        /** Check that there is only one of each configuration item
         */
-       bool CheckOnce(char* tag);
+       bool CheckOnce(const char* tag);
 
  public:
 
+       User* RehashUser;
+
+       std::string RehashParameter;
+
        std::ostringstream errstr;
 
        ConfigDataHash newconfig;
@@ -263,7 +265,7 @@ class CoreExport ServerConfig : public Extensible
 
        InspIRCd* GetInstance();
 
-       void DoDownloads();
+       int DoDownloads();
          
        /** This holds all the information in the config file,
         * it's indexed by tag name to a vector of key/values.
@@ -326,6 +328,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.
         */
@@ -627,6 +633,11 @@ class CoreExport ServerConfig : public Extensible
         */
        char sid[MAXBUF];
 
+       /** True if we have been told to run the testsuite from the commandline,
+        * rather than entering the mainloop.
+        */
+       bool TestSuite;
+
        /** Construct a new ServerConfig
         */
        ServerConfig(InspIRCd* Instance);
@@ -651,7 +662,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, int pass);
+       void Read(bool bail, User* user);
 
        /** Read a file into a file_cache object
         */
@@ -661,19 +672,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, std::istream* scan_for_includs_only);
+       bool LoadConf(ConfigDataHash &target, const char* filename, std::ostringstream &errorstream);
 
        /** 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, std::istream* scan_for_includs_only = NULL);
+       bool LoadConf(ConfigDataHash &target, const std::string &filename, std::ostringstream &errorstream);
        
        /* Both these return true if the value existed or false otherwise */