0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-08 10:31:50 -05:00

Clarify emptyIncludeConf logic

Suggestion from John Newbery <john@johnnewbery.com> in
https://github.com/bitcoin/bitcoin/pull/15934#discussion_r343795528
This commit is contained in:
Russell Yanofsky 2019-11-07 22:01:22 -05:00
parent 2fb6140d58
commit dc8e1e7548

View file

@ -894,14 +894,19 @@ bool ArgsManager::ReadConfigFiles(std::string& error, bool ignore_invalid_keys)
if (!ReadConfigStream(stream, confPath, error, ignore_invalid_keys)) {
return false;
}
// if there is an -includeconf in the override args, but it is empty, that means the user
// passed '-noincludeconf' on the command line, in which case we should not include anything
bool emptyIncludeConf;
// `-includeconf` cannot be included in the command line arguments except
// as `-noincludeconf` (which indicates that no conf file should be used).
bool use_conf_file{true};
{
LOCK(cs_args);
emptyIncludeConf = m_override_args.count("-includeconf") == 0;
auto it = m_override_args.find("-includeconf");
if (it != m_override_args.end()) {
// ParseParameters() fails if a non-negated -includeconf is passed on the command-line
assert(it->second.empty());
use_conf_file = false;
}
}
if (emptyIncludeConf) {
if (use_conf_file) {
std::string chain_id = GetChainName();
std::vector<std::string> includeconf(GetArgs("-includeconf"));
{