diff options
| author | Anthony Towns <[email protected]> | 2018-04-04 18:07:00 +1000 |
|---|---|---|
| committer | Anthony Towns <[email protected]> | 2018-04-11 23:15:28 +1000 |
| commit | 68797e20f478d835b7ff691a656242c14283446a (patch) | |
| tree | e64f31bebc1497fbb733805dba721e130e32e11c /src/util.cpp | |
| parent | ArgsManager: limit some options to only apply on mainnet when in default section (diff) | |
| download | discoin-68797e20f478d835b7ff691a656242c14283446a.tar.xz discoin-68797e20f478d835b7ff691a656242c14283446a.zip | |
ArgsManager: Warn when ignoring network-specific config setting
When network-specific options such as -addnode, -connect, etc are
specified in the default section of the config file, but that setting is
ignored due to testnet or regtest being in use, and it is not overridden
by either a command line option or a setting in the [regtest] or [test]
section of the config file, a warning is added to the log, eg:
Warning: Config setting for -connect only applied on regtest network when in [regtest] section.
Diffstat (limited to 'src/util.cpp')
| -rw-r--r-- | src/util.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp index 51c28349f..410117309 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -600,6 +600,34 @@ ArgsManager::ArgsManager() : // nothing to do } +void ArgsManager::WarnForSectionOnlyArgs() +{ + // if there's no section selected, don't worry + if (m_network.empty()) return; + + // if it's okay to use the default section for this network, don't worry + if (m_network == CBaseChainParams::MAIN) return; + + for (const auto& arg : m_network_only_args) { + std::pair<bool, std::string> found_result; + + // if this option is overridden it's fine + found_result = ArgsManagerHelper::GetArgHelper(m_override_args, arg); + if (found_result.first) continue; + + // if there's a network-specific value for this option, it's fine + found_result = ArgsManagerHelper::GetArgHelper(m_config_args, ArgsManagerHelper::NetworkArg(*this, arg)); + if (found_result.first) continue; + + // if there isn't a default value for this option, it's fine + found_result = ArgsManagerHelper::GetArgHelper(m_config_args, arg); + if (!found_result.first) continue; + + // otherwise, issue a warning + LogPrintf("Warning: Config setting for %s only applied on %s network when in [%s] section.\n", arg, m_network, m_network); + } +} + void ArgsManager::SelectConfigNetwork(const std::string& network) { m_network = network; |