summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/conf/inspircd.conf.example17
-rw-r--r--docs/conf/links.conf.example4
-rw-r--r--docs/conf/opers.conf.example4
-rw-r--r--src/configreader.cpp55
4 files changed, 16 insertions, 64 deletions
diff --git a/docs/conf/inspircd.conf.example b/docs/conf/inspircd.conf.example
index 9f4581fb3..3ad2d5fd6 100644
--- a/docs/conf/inspircd.conf.example
+++ b/docs/conf/inspircd.conf.example
@@ -529,16 +529,6 @@
# #
#<disabled commands="TOPIC MODE" usermodes="" chanmodes="" fakenonexistant="yes">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- RTFM LINE -#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# #
-# Just remove this... Its here to make you read ALL of the config #
-# file options ;) #
-
-<die value="You should probably edit your config *PROPERLY* and try again.">
-
-
-
#-#-#-#-#-#-#-#-#-#-#-#-#- SERVER OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# Settings to define which features are usable on your server. #
@@ -993,13 +983,6 @@
# will be banning 955 or more users.
trigger="95.5">
-
-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- YAWN -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
-# #
-# You should already know what to do here :) #
-
-<die value="User error. You didn't edit your config properly. Go back and try again.">
-
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# MODULES #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
diff --git a/docs/conf/links.conf.example b/docs/conf/links.conf.example
index e11c4fe32..ad2efa9f7 100644
--- a/docs/conf/links.conf.example
+++ b/docs/conf/links.conf.example
@@ -118,3 +118,7 @@
# to opers on the network. #
# #
<uline server="services.example.com" silent="yes">
+
+# Once you have edited this file you can remove this line. This is just to
+# ensure that you don't hastily include the file without reading it.
+<die reason="Using links.conf.example without editing it is a security risk">
diff --git a/docs/conf/opers.conf.example b/docs/conf/opers.conf.example
index c388230b4..4112e56dd 100644
--- a/docs/conf/opers.conf.example
+++ b/docs/conf/opers.conf.example
@@ -167,3 +167,7 @@
# type: Which type of operator this person is; see the block
# above for the list of types. NOTE: This is case-sensitive as well.
type="Helper">
+
+# Once you have edited this file you can remove this line. This is just to
+# ensure that you don't hastily include the file without reading it.
+<die reason="Using opers.conf.example without editing it is a security risk">
diff --git a/src/configreader.cpp b/src/configreader.cpp
index f9eebe672..52217722c 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -334,35 +334,6 @@ void ServerConfig::CrossCheckConnectBlocks(ServerConfig* current)
}
}
-/** Represents a deprecated configuration tag.
- */
-struct DeprecatedConfig
-{
- /** Tag name. */
- std::string tag;
-
- /** Attribute key. */
- std::string key;
-
- /** Attribute value. */
- std::string value;
-
- /** Reason for deprecation. */
- std::string reason;
-};
-
-static const DeprecatedConfig ChangedConfig[] = {
- { "bind", "transport", "", "has been moved to <bind:ssl> as of 2.0" },
- { "die", "value", "", "you need to reread your config" },
- { "gnutls", "starttls", "", "has been replaced with m_starttls as of 3.0" },
- { "link", "autoconnect", "", "2.0+ does not use this attribute - define <autoconnect> tags instead" },
- { "link", "transport", "", "has been moved to <link:ssl> as of 2.0" },
- { "module", "name", "m_chanprotect.so", "has been replaced with m_customprefix as of 3.0" },
- { "module", "name", "m_halfop.so", "has been replaced with m_customprefix as of 3.0" },
- { "options", "cyclehosts", "", "has been replaced with m_hostcycle as of 3.0" },
- { "performance", "nouserdns", "", "has been moved to <connect:resolvehostnames> as of 3.0" }
-};
-
void ServerConfig::Fill()
{
ConfigTag* options = ConfValue("options");
@@ -513,26 +484,16 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
/* The stuff in here may throw CoreException, be sure we're in a position to catch it. */
try
{
- for (unsigned long index = 0; index * sizeof(DeprecatedConfig) < sizeof(ChangedConfig); index++)
+ // Ensure the user has actually edited ther config.
+ ConfigTagList dietags = ConfTags("die");
+ if (dietags.first != dietags.second)
{
- std::string value;
- ConfigTagList tags = ConfTags(ChangedConfig[index].tag);
- for(ConfigIter i = tags.first; i != tags.second; ++i)
+ errstr << "Your configuration has not been edited correctly!" << std::endl;
+ for (ConfigIter iter = dietags.first; iter != dietags.second; ++iter)
{
- if (i->second->readString(ChangedConfig[index].key, value, true)
- && (ChangedConfig[index].value.empty() || value == ChangedConfig[index].value))
- {
- errstr << "Your configuration contains a deprecated value: <" << ChangedConfig[index].tag;
- if (ChangedConfig[index].value.empty())
- {
- errstr << ':' << ChangedConfig[index].key;
- }
- else
- {
- errstr << ' ' << ChangedConfig[index].key << "=\"" << ChangedConfig[index].value << "\"";
- }
- errstr << "> - " << ChangedConfig[index].reason << " (at " << i->second->getTagLocation() << ")" << std::endl;
- }
+ ConfigTag* tag = iter->second;
+ const std::string reason = tag->getString("reason", "You left a <die> tag in your config", 1);
+ errstr << reason << " (at " << tag->getTagLocation() << ")" << std::endl;
}
}