summaryrefslogtreecommitdiff
path: root/src/modules.cpp
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 /src/modules.cpp
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 'src/modules.cpp')
-rw-r--r--src/modules.cpp45
1 files changed, 3 insertions, 42 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index df7c9da40..773f87f66 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -619,12 +619,12 @@ ConfigReader::ConfigReader(InspIRCd* Instance, const std::string &filename) : Se
this->error = CONF_FILE_NOT_FOUND;
};
-std::string ConfigReader::ReadValue(const std::string &tag, const std::string &name, int index)
+std::string ConfigReader::ReadValue(const std::string &tag, const std::string &name, int index, bool allow_linefeeds)
{
/* Don't need to strlcpy() tag and name anymore, ReadConf() takes const char* */
std::string result;
- if (!ServerInstance->Config->ConfValue(*this->data, tag, name, index, result))
+ if (!ServerInstance->Config->ConfValue(*this->data, tag, name, index, result, allow_linefeeds))
{
this->error = CONF_VALUE_NOT_FOUND;
return "";
@@ -666,46 +666,7 @@ long ConfigReader::GetError()
void ConfigReader::DumpErrors(bool bail, userrec* user)
{
- /* XXX - Duplicated code */
-
- if (bail)
- {
- printf("There were errors in your configuration:\n%s", this->errorlog->str().c_str());
- InspIRCd::Exit(ERROR);
- }
- else
- {
- std::string errors = this->errorlog->str();
- std::string::size_type start;
- unsigned int prefixlen;
-
- start = 0;
- /* ":ServerInstance->Config->ServerName NOTICE user->nick :" */
- prefixlen = strlen(ServerInstance->Config->ServerName) + strlen(user->nick) + 11;
-
- if (user)
- {
- user->WriteServ("NOTICE %s :There were errors in the configuration file:",user->nick);
-
- while(start < errors.length())
- {
- user->WriteServ("NOTICE %s :%s",user->nick, errors.substr(start, 510 - prefixlen).c_str());
- start += 510 - prefixlen;
- }
- }
- else
- {
- ServerInstance->WriteOpers("There were errors in the configuration file:");
-
- while(start < errors.length())
- {
- ServerInstance->WriteOpers(errors.substr(start, 360).c_str());
- start += 360;
- }
- }
-
- return;
- }
+ ServerInstance->Config->ReportConfigError(this->errorlog->str(), bail, user);
}