summaryrefslogtreecommitdiff
path: root/include/configreader.h
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-16 21:04:47 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-16 21:04:47 +0000
commite65c1d261c26702dac82a6390be3fa757bbed6ec (patch)
treefa1f55a7c6072475b84ef15dae556b35a0614c7d /include/configreader.h
parentadcab4da2aeae3de198435219f6c2b25bb7cd4d0 (diff)
Add an optional parameter to ConfigReader::ReadValue which defines if we want linefeeds or not.
Tidy up some duplicated code in configreader (error reporting) Change ModuleException to inherit from CoreException, have the configreader throw and catch its CoreException on fatal error git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6013 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/configreader.h')
-rw-r--r--include/configreader.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/include/configreader.h b/include/configreader.h
index 115f205c5..98a13034d 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -30,7 +30,14 @@ class InspSocket;
/** Types of data in the core config
*/
-enum ConfigDataType { DT_NOTHING, DT_INTEGER, DT_CHARPTR, DT_BOOLEAN };
+enum ConfigDataType
+{
+ DT_NOTHING = 0,
+ DT_INTEGER = 1,
+ DT_CHARPTR = 2,
+ DT_BOOLEAN = 3,
+ DT_ALLOW_NEWLINE = 128
+};
/** Holds a config value, either string, integer or boolean.
* Callback functions receive one or more of these, either on
@@ -522,7 +529,20 @@ class 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.
*/
+
+ /** Report a configuration error given in errormessage.
+ * @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.
+ */
+ void ReportConfigError(const std::string &errormessage, bool bail, userrec* 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);
+
/** 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.
*/
@@ -532,10 +552,10 @@ class ServerConfig : public Extensible
/** Writes 'length' chars into 'result' as a string
*/
- bool ConfValue(ConfigDataHash &target, const char* tag, const char* var, int index, char* result, int length);
+ bool ConfValue(ConfigDataHash &target, const char* tag, const char* var, int index, char* result, int length, bool allow_linefeeds = false);
/** Writes 'length' chars into 'result' as a string
*/
- bool ConfValue(ConfigDataHash &target, const std::string &tag, const std::string &var, int index, std::string &result);
+ bool ConfValue(ConfigDataHash &target, const std::string &tag, const std::string &var, int index, std::string &result, bool allow_linefeeds = false);
/** Tries to convert the value to an integer and write it to 'result'
*/