|
|
|
@ -402,7 +402,8 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
|
|
|
|
|
pszDest ? 0.0 : (double)(GetAdjustedTime() - addrConnect.nTime)/3600.0);
|
|
|
|
|
|
|
|
|
|
// Resolve
|
|
|
|
|
const uint16_t default_port{Params().GetDefaultPort()};
|
|
|
|
|
const uint16_t default_port{pszDest != nullptr ? Params().GetDefaultPort(pszDest) :
|
|
|
|
|
Params().GetDefaultPort()};
|
|
|
|
|
if (pszDest) {
|
|
|
|
|
std::vector<CService> resolved;
|
|
|
|
|
if (Lookup(pszDest, resolved, default_port, fNameLookup && !HaveNameProxy(), 256) && !resolved.empty()) {
|
|
|
|
@ -2059,8 +2060,9 @@ void CConnman::ThreadOpenConnections(const std::vector<std::string> connect)
|
|
|
|
|
// from advertising themselves as a service on another host and
|
|
|
|
|
// port, causing a DoS attack as nodes around the network attempt
|
|
|
|
|
// to connect to it fruitlessly.
|
|
|
|
|
if (addr.GetPort() != Params().GetDefaultPort() && nTries < 50)
|
|
|
|
|
if (addr.GetPort() != Params().GetDefaultPort(addr.GetNetwork()) && nTries < 50) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addrConnect = addr;
|
|
|
|
|
break;
|
|
|
|
@ -2123,7 +2125,7 @@ std::vector<AddedNodeInfo> CConnman::GetAddedNodeInfo() const
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (const std::string& strAddNode : lAddresses) {
|
|
|
|
|
CService service(LookupNumeric(strAddNode, Params().GetDefaultPort()));
|
|
|
|
|
CService service(LookupNumeric(strAddNode, Params().GetDefaultPort(strAddNode)));
|
|
|
|
|
AddedNodeInfo addedNode{strAddNode, CService(), false, false};
|
|
|
|
|
if (service.IsValid()) {
|
|
|
|
|
// strAddNode is an IP:port
|
|
|
|
|