aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorJorge Timón <jtimon@jtimon.cc>2016-10-13 22:38:10 +0200
committerJorge Timón <jtimon@jtimon.cc>2019-09-06 22:05:33 +0200
commit052c54ecb02695e5d2694e8e0cbf5ccc89de86e8 (patch)
tree6c6aaf45446fdf2e952facf3b87627f08add20f7 /src/util
parentae3e3bd151f43dfa9e08bf592aafc6066bad258d (diff)
downloadbitcoin-052c54ecb02695e5d2694e8e0cbf5ccc89de86e8.tar.xz
Testchains: Generic selection with -chain=<str> in addition of -testnet and -regtest
Diffstat (limited to 'src/util')
-rw-r--r--src/util/system.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/util/system.cpp b/src/util/system.cpp
index c925dec253..8098cde093 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -954,16 +954,18 @@ bool ArgsManager::ReadConfigFiles(std::string& error, bool ignore_invalid_keys)
std::string ArgsManager::GetChainName() const
{
LOCK(cs_args);
- bool fRegTest = ArgsManagerHelper::GetNetBoolArg(*this, "-regtest");
- bool fTestNet = ArgsManagerHelper::GetNetBoolArg(*this, "-testnet");
+ const bool fRegTest = ArgsManagerHelper::GetNetBoolArg(*this, "-regtest");
+ const bool fTestNet = ArgsManagerHelper::GetNetBoolArg(*this, "-testnet");
+ const bool is_chain_arg_set = IsArgSet("-chain");
- if (fTestNet && fRegTest)
- throw std::runtime_error("Invalid combination of -regtest and -testnet.");
+ if ((int)is_chain_arg_set + (int)fRegTest + (int)fTestNet > 1) {
+ throw std::runtime_error("Invalid combination of -regtest, -testnet and -chain. Can use at most one.");
+ }
if (fRegTest)
return CBaseChainParams::REGTEST;
if (fTestNet)
return CBaseChainParams::TESTNET;
- return CBaseChainParams::MAIN;
+ return GetArg("-chain", CBaseChainParams::MAIN);
}
bool RenameOver(fs::path src, fs::path dest)