Merge #10118: Util: Remove redundant calls to argsGlobal.IsArgSet()

ed866ab Indentation after 'Remove redundant calls to gArgs.IsArgSet()' (Jorge Timón)
506b700 Util: Remove redundant calls to gArgs.IsArgSet() (Jorge Timón)

Tree-SHA512: 4f97a0bf2a76c0f351a6343db62898cf057d745c848de00fa09465e870a120f28e0d836cafd6a047f4ec0da7ab671aebee43fa7410c9f0e66382edd1bb2009ba
This commit is contained in:
Wladimir J. van der Laan 2017-06-27 14:22:54 +02:00
commit ac52492cd2
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D
5 changed files with 72 additions and 93 deletions

View file

@ -92,35 +92,32 @@ static bool multiUserAuthorized(std::string strUserPass)
std::string strUser = strUserPass.substr(0, strUserPass.find(":")); std::string strUser = strUserPass.substr(0, strUserPass.find(":"));
std::string strPass = strUserPass.substr(strUserPass.find(":") + 1); std::string strPass = strUserPass.substr(strUserPass.find(":") + 1);
if (gArgs.IsArgSet("-rpcauth")) { for (const std::string& strRPCAuth : gArgs.GetArgs("-rpcauth")) {
//Search for multi-user login/pass "rpcauth" from config //Search for multi-user login/pass "rpcauth" from config
for (std::string strRPCAuth : gArgs.GetArgs("-rpcauth")) std::vector<std::string> vFields;
{ boost::split(vFields, strRPCAuth, boost::is_any_of(":$"));
std::vector<std::string> vFields; if (vFields.size() != 3) {
boost::split(vFields, strRPCAuth, boost::is_any_of(":$")); //Incorrect formatting in config file
if (vFields.size() != 3) { continue;
//Incorrect formatting in config file }
continue;
}
std::string strName = vFields[0]; std::string strName = vFields[0];
if (!TimingResistantEqual(strName, strUser)) { if (!TimingResistantEqual(strName, strUser)) {
continue; continue;
} }
std::string strSalt = vFields[1]; std::string strSalt = vFields[1];
std::string strHash = vFields[2]; std::string strHash = vFields[2];
static const unsigned int KEY_SIZE = 32; static const unsigned int KEY_SIZE = 32;
unsigned char out[KEY_SIZE]; unsigned char out[KEY_SIZE];
CHMAC_SHA256(reinterpret_cast<const unsigned char*>(strSalt.c_str()), strSalt.size()).Write(reinterpret_cast<const unsigned char*>(strPass.c_str()), strPass.size()).Finalize(out); CHMAC_SHA256(reinterpret_cast<const unsigned char*>(strSalt.c_str()), strSalt.size()).Write(reinterpret_cast<const unsigned char*>(strPass.c_str()), strPass.size()).Finalize(out);
std::vector<unsigned char> hexvec(out, out+KEY_SIZE); std::vector<unsigned char> hexvec(out, out+KEY_SIZE);
std::string strHashFromPass = HexStr(hexvec); std::string strHashFromPass = HexStr(hexvec);
if (TimingResistantEqual(strHashFromPass, strHash)) { if (TimingResistantEqual(strHashFromPass, strHash)) {
return true; return true;
}
} }
} }
return false; return false;

View file

@ -196,18 +196,16 @@ static bool InitHTTPAllowList()
LookupHost("::1", localv6, false); LookupHost("::1", localv6, false);
rpc_allow_subnets.push_back(CSubNet(localv4, 8)); // always allow IPv4 local subnet rpc_allow_subnets.push_back(CSubNet(localv4, 8)); // always allow IPv4 local subnet
rpc_allow_subnets.push_back(CSubNet(localv6)); // always allow IPv6 localhost rpc_allow_subnets.push_back(CSubNet(localv6)); // always allow IPv6 localhost
if (gArgs.IsArgSet("-rpcallowip")) { for (const std::string& strAllow : gArgs.GetArgs("-rpcallowip")) {
for (const std::string& strAllow : gArgs.GetArgs("-rpcallowip")) { CSubNet subnet;
CSubNet subnet; LookupSubNet(strAllow.c_str(), subnet);
LookupSubNet(strAllow.c_str(), subnet); if (!subnet.IsValid()) {
if (!subnet.IsValid()) { uiInterface.ThreadSafeMessageBox(
uiInterface.ThreadSafeMessageBox( strprintf("Invalid -rpcallowip subnet specification: %s. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).", strAllow),
strprintf("Invalid -rpcallowip subnet specification: %s. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).", strAllow), "", CClientUIInterface::MSG_ERROR);
"", CClientUIInterface::MSG_ERROR); return false;
return false;
}
rpc_allow_subnets.push_back(subnet);
} }
rpc_allow_subnets.push_back(subnet);
} }
std::string strAllowed; std::string strAllowed;
for (const CSubNet& subnet : rpc_allow_subnets) for (const CSubNet& subnet : rpc_allow_subnets)

View file

@ -880,9 +880,7 @@ bool AppInitParameterInteraction()
} }
// -bind and -whitebind can't be set when not listening // -bind and -whitebind can't be set when not listening
size_t nUserBind = size_t nUserBind = gArgs.GetArgs("-bind").size() + gArgs.GetArgs("-whitebind").size();
(gArgs.IsArgSet("-bind") ? gArgs.GetArgs("-bind").size() : 0) +
(gArgs.IsArgSet("-whitebind") ? gArgs.GetArgs("-whitebind").size() : 0);
if (nUserBind != 0 && !gArgs.GetBoolArg("-listen", DEFAULT_LISTEN)) { if (nUserBind != 0 && !gArgs.GetBoolArg("-listen", DEFAULT_LISTEN)) {
return InitError("Cannot set -bind or -whitebind together with -listen=0"); return InitError("Cannot set -bind or -whitebind together with -listen=0");
} }
@ -920,15 +918,13 @@ bool AppInitParameterInteraction()
} }
// Now remove the logging categories which were explicitly excluded // Now remove the logging categories which were explicitly excluded
if (gArgs.IsArgSet("-debugexclude")) { for (const std::string& cat : gArgs.GetArgs("-debugexclude")) {
for (const std::string& cat : gArgs.GetArgs("-debugexclude")) { uint32_t flag = 0;
uint32_t flag = 0; if (!GetLogCategory(&flag, &cat)) {
if (!GetLogCategory(&flag, &cat)) { InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat));
InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat)); continue;
continue;
}
logCategories &= ~flag;
} }
logCategories &= ~flag;
} }
// Check for -debugnet // Check for -debugnet
@ -1238,13 +1234,10 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
// sanitize comments per BIP-0014, format user agent and check total size // sanitize comments per BIP-0014, format user agent and check total size
std::vector<std::string> uacomments; std::vector<std::string> uacomments;
if (gArgs.IsArgSet("-uacomment")) { for (const std::string& cmt : gArgs.GetArgs("-uacomment")) {
for (std::string cmt : gArgs.GetArgs("-uacomment")) if (cmt != SanitizeString(cmt, SAFE_CHARS_UA_COMMENT))
{ return InitError(strprintf(_("User Agent comment (%s) contains unsafe characters."), cmt));
if (cmt != SanitizeString(cmt, SAFE_CHARS_UA_COMMENT)) uacomments.push_back(cmt);
return InitError(strprintf(_("User Agent comment (%s) contains unsafe characters."), cmt));
uacomments.push_back(cmt);
}
} }
strSubVersion = FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, uacomments); strSubVersion = FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, uacomments);
if (strSubVersion.size() > MAX_SUBVERSION_LENGTH) { if (strSubVersion.size() > MAX_SUBVERSION_LENGTH) {
@ -1317,14 +1310,12 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
fDiscover = GetBoolArg("-discover", true); fDiscover = GetBoolArg("-discover", true);
fRelayTxes = !GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY); fRelayTxes = !GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY);
if (gArgs.IsArgSet("-externalip")) { for (const std::string& strAddr : gArgs.GetArgs("-externalip")) {
for (const std::string& strAddr : gArgs.GetArgs("-externalip")) { CService addrLocal;
CService addrLocal; if (Lookup(strAddr.c_str(), addrLocal, GetListenPort(), fNameLookup) && addrLocal.IsValid())
if (Lookup(strAddr.c_str(), addrLocal, GetListenPort(), fNameLookup) && addrLocal.IsValid()) AddLocal(addrLocal, LOCAL_MANUAL);
AddLocal(addrLocal, LOCAL_MANUAL); else
else return InitError(ResolveErrMsg("externalip", strAddr));
return InitError(ResolveErrMsg("externalip", strAddr));
}
} }
#if ENABLE_ZMQ #if ENABLE_ZMQ
@ -1553,10 +1544,8 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
uiInterface.NotifyBlockTip.connect(BlockNotifyCallback); uiInterface.NotifyBlockTip.connect(BlockNotifyCallback);
std::vector<fs::path> vImportFiles; std::vector<fs::path> vImportFiles;
if (gArgs.IsArgSet("-loadblock")) for (const std::string& strFile : gArgs.GetArgs("-loadblock")) {
{ vImportFiles.push_back(strFile);
for (const std::string& strFile : gArgs.GetArgs("-loadblock"))
vImportFiles.push_back(strFile);
} }
threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles)); threadGroup.create_thread(boost::bind(&ThreadImport, vImportFiles));
@ -1598,36 +1587,30 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
connOptions.nMaxOutboundTimeframe = nMaxOutboundTimeframe; connOptions.nMaxOutboundTimeframe = nMaxOutboundTimeframe;
connOptions.nMaxOutboundLimit = nMaxOutboundLimit; connOptions.nMaxOutboundLimit = nMaxOutboundLimit;
if (gArgs.IsArgSet("-bind")) { for (const std::string& strBind : gArgs.GetArgs("-bind")) {
for (const std::string& strBind : gArgs.GetArgs("-bind")) { CService addrBind;
CService addrBind; if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) {
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) { return InitError(ResolveErrMsg("bind", strBind));
return InitError(ResolveErrMsg("bind", strBind));
}
connOptions.vBinds.push_back(addrBind);
} }
connOptions.vBinds.push_back(addrBind);
} }
if (gArgs.IsArgSet("-whitebind")) { for (const std::string& strBind : gArgs.GetArgs("-whitebind")) {
for (const std::string& strBind : gArgs.GetArgs("-whitebind")) { CService addrBind;
CService addrBind; if (!Lookup(strBind.c_str(), addrBind, 0, false)) {
if (!Lookup(strBind.c_str(), addrBind, 0, false)) { return InitError(ResolveErrMsg("whitebind", strBind));
return InitError(ResolveErrMsg("whitebind", strBind));
}
if (addrBind.GetPort() == 0) {
return InitError(strprintf(_("Need to specify a port with -whitebind: '%s'"), strBind));
}
connOptions.vWhiteBinds.push_back(addrBind);
} }
if (addrBind.GetPort() == 0) {
return InitError(strprintf(_("Need to specify a port with -whitebind: '%s'"), strBind));
}
connOptions.vWhiteBinds.push_back(addrBind);
} }
if (gArgs.IsArgSet("-whitelist")) { for (const auto& net : gArgs.GetArgs("-whitelist")) {
for (const auto& net : gArgs.GetArgs("-whitelist")) { CSubNet subnet;
CSubNet subnet; LookupSubNet(net.c_str(), subnet);
LookupSubNet(net.c_str(), subnet); if (!subnet.IsValid())
if (!subnet.IsValid()) return InitError(strprintf(_("Invalid netmask specified in -whitelist: '%s'"), net));
return InitError(strprintf(_("Invalid netmask specified in -whitelist: '%s'"), net)); connOptions.vWhitelistedRange.push_back(subnet);
connOptions.vWhitelistedRange.push_back(subnet);
}
} }
if (gArgs.IsArgSet("-seednode")) { if (gArgs.IsArgSet("-seednode")) {

View file

@ -1677,7 +1677,7 @@ void CConnman::ProcessOneShot()
void CConnman::ThreadOpenConnections() void CConnman::ThreadOpenConnections()
{ {
// Connect to specific addresses // Connect to specific addresses
if (gArgs.IsArgSet("-connect") && gArgs.GetArgs("-connect").size() > 0) if (gArgs.IsArgSet("-connect"))
{ {
for (int64_t nLoop = 0;; nLoop++) for (int64_t nLoop = 0;; nLoop++)
{ {
@ -1903,8 +1903,7 @@ void CConnman::ThreadOpenAddedConnections()
{ {
{ {
LOCK(cs_vAddedNodes); LOCK(cs_vAddedNodes);
if (gArgs.IsArgSet("-addnode")) vAddedNodes = gArgs.GetArgs("-addnode");
vAddedNodes = gArgs.GetArgs("-addnode");
} }
while (true) while (true)

View file

@ -422,7 +422,9 @@ void ArgsManager::ParseParameters(int argc, const char* const argv[])
std::vector<std::string> ArgsManager::GetArgs(const std::string& strArg) std::vector<std::string> ArgsManager::GetArgs(const std::string& strArg)
{ {
LOCK(cs_args); LOCK(cs_args);
return mapMultiArgs.at(strArg); if (IsArgSet(strArg))
return mapMultiArgs.at(strArg);
return {};
} }
bool ArgsManager::IsArgSet(const std::string& strArg) bool ArgsManager::IsArgSet(const std::string& strArg)