|
|
@@ -919,12 +919,12 @@ bool AppInitParameterInteraction() |
|
|
|
|
|
|
|
// Now remove the logging categories which were explicitly excluded |
|
|
|
for (const std::string& cat : gArgs.GetArgs("-debugexclude")) { |
|
|
|
uint32_t flag = 0; |
|
|
|
if (!GetLogCategory(&flag, &cat)) { |
|
|
|
InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat)); |
|
|
|
continue; |
|
|
|
} |
|
|
|
logCategories &= ~flag; |
|
|
|
uint32_t flag = 0; |
|
|
|
if (!GetLogCategory(&flag, &cat)) { |
|
|
|
InitWarning(strprintf(_("Unsupported logging category %s=%s."), "-debugexclude", cat)); |
|
|
|
continue; |
|
|
|
} |
|
|
|
logCategories &= ~flag; |
|
|
|
} |
|
|
|
|
|
|
|
// Check for -debugnet |
|
|
@@ -1235,9 +1235,9 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
// sanitize comments per BIP-0014, format user agent and check total size |
|
|
|
std::vector<std::string> uacomments; |
|
|
|
for (const 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)); |
|
|
|
uacomments.push_back(cmt); |
|
|
|
if (cmt != SanitizeString(cmt, SAFE_CHARS_UA_COMMENT)) |
|
|
|
return InitError(strprintf(_("User Agent comment (%s) contains unsafe characters."), cmt)); |
|
|
|
uacomments.push_back(cmt); |
|
|
|
} |
|
|
|
strSubVersion = FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, uacomments); |
|
|
|
if (strSubVersion.size() > MAX_SUBVERSION_LENGTH) { |
|
|
@@ -1311,11 +1311,11 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
fRelayTxes = !GetBoolArg("-blocksonly", DEFAULT_BLOCKSONLY); |
|
|
|
|
|
|
|
for (const std::string& strAddr : gArgs.GetArgs("-externalip")) { |
|
|
|
CService addrLocal; |
|
|
|
if (Lookup(strAddr.c_str(), addrLocal, GetListenPort(), fNameLookup) && addrLocal.IsValid()) |
|
|
|
AddLocal(addrLocal, LOCAL_MANUAL); |
|
|
|
else |
|
|
|
return InitError(ResolveErrMsg("externalip", strAddr)); |
|
|
|
CService addrLocal; |
|
|
|
if (Lookup(strAddr.c_str(), addrLocal, GetListenPort(), fNameLookup) && addrLocal.IsValid()) |
|
|
|
AddLocal(addrLocal, LOCAL_MANUAL); |
|
|
|
else |
|
|
|
return InitError(ResolveErrMsg("externalip", strAddr)); |
|
|
|
} |
|
|
|
|
|
|
|
#if ENABLE_ZMQ |
|
|
@@ -1588,29 +1588,29 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
connOptions.nMaxOutboundLimit = nMaxOutboundLimit; |
|
|
|
|
|
|
|
for (const std::string& strBind : gArgs.GetArgs("-bind")) { |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) { |
|
|
|
return InitError(ResolveErrMsg("bind", strBind)); |
|
|
|
} |
|
|
|
connOptions.vBinds.push_back(addrBind); |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) { |
|
|
|
return InitError(ResolveErrMsg("bind", strBind)); |
|
|
|
} |
|
|
|
connOptions.vBinds.push_back(addrBind); |
|
|
|
} |
|
|
|
for (const std::string& strBind : gArgs.GetArgs("-whitebind")) { |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, 0, false)) { |
|
|
|
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); |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, 0, false)) { |
|
|
|
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); |
|
|
|
} |
|
|
|
|
|
|
|
for (const auto& net : gArgs.GetArgs("-whitelist")) { |
|
|
|
CSubNet subnet; |
|
|
|
LookupSubNet(net.c_str(), subnet); |
|
|
|
if (!subnet.IsValid()) |
|
|
|
return InitError(strprintf(_("Invalid netmask specified in -whitelist: '%s'"), net)); |
|
|
|
connOptions.vWhitelistedRange.push_back(subnet); |
|
|
|
CSubNet subnet; |
|
|
|
LookupSubNet(net.c_str(), subnet); |
|
|
|
if (!subnet.IsValid()) |
|
|
|
return InitError(strprintf(_("Invalid netmask specified in -whitelist: '%s'"), net)); |
|
|
|
connOptions.vWhitelistedRange.push_back(subnet); |
|
|
|
} |
|
|
|
|
|
|
|
if (gArgs.IsArgSet("-seednode")) { |