diff options
-rw-r--r-- | docs/conf/inspircd.conf.example | 17 | ||||
-rw-r--r-- | docs/conf/links.conf.example | 4 | ||||
-rw-r--r-- | docs/conf/opers.conf.example | 4 | ||||
-rw-r--r-- | src/configreader.cpp | 55 |
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; } } |