|
|
|
@ -14,7 +14,7 @@ static const unsigned char pchOnionCat[] = {0xFD,0x87,0xD8,0x7E,0xEB,0x43};
|
|
|
|
|
// 0xFD + sha256("bitcoin")[0:5]
|
|
|
|
|
static const unsigned char g_internal_prefix[] = { 0xFD, 0x6B, 0x88, 0xC0, 0x87, 0x24 };
|
|
|
|
|
|
|
|
|
|
void CNetAddr::Init()
|
|
|
|
|
CNetAddr::CNetAddr()
|
|
|
|
|
{
|
|
|
|
|
memset(ip, 0, sizeof(ip));
|
|
|
|
|
scopeId = 0;
|
|
|
|
@ -67,11 +67,6 @@ bool CNetAddr::SetSpecial(const std::string &strName)
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CNetAddr::CNetAddr()
|
|
|
|
|
{
|
|
|
|
|
Init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CNetAddr::CNetAddr(const struct in_addr& ipv4Addr)
|
|
|
|
|
{
|
|
|
|
|
SetRaw(NET_IPV4, (const uint8_t*)&ipv4Addr);
|
|
|
|
@ -290,11 +285,6 @@ bool operator==(const CNetAddr& a, const CNetAddr& b)
|
|
|
|
|
return (memcmp(a.ip, b.ip, 16) == 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator!=(const CNetAddr& a, const CNetAddr& b)
|
|
|
|
|
{
|
|
|
|
|
return (memcmp(a.ip, b.ip, 16) != 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator<(const CNetAddr& a, const CNetAddr& b)
|
|
|
|
|
{
|
|
|
|
|
return (memcmp(a.ip, b.ip, 16) < 0);
|
|
|
|
@ -469,14 +459,8 @@ int CNetAddr::GetReachabilityFrom(const CNetAddr *paddrPartner) const
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CService::Init()
|
|
|
|
|
CService::CService() : port(0)
|
|
|
|
|
{
|
|
|
|
|
port = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CService::CService()
|
|
|
|
|
{
|
|
|
|
|
Init();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CService::CService(const CNetAddr& cip, unsigned short portIn) : CNetAddr(cip), port(portIn)
|
|
|
|
@ -525,11 +509,6 @@ bool operator==(const CService& a, const CService& b)
|
|
|
|
|
return static_cast<CNetAddr>(a) == static_cast<CNetAddr>(b) && a.port == b.port;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator!=(const CService& a, const CService& b)
|
|
|
|
|
{
|
|
|
|
|
return static_cast<CNetAddr>(a) != static_cast<CNetAddr>(b) || a.port != b.port;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator<(const CService& a, const CService& b)
|
|
|
|
|
{
|
|
|
|
|
return static_cast<CNetAddr>(a) < static_cast<CNetAddr>(b) || (static_cast<CNetAddr>(a) == static_cast<CNetAddr>(b) && a.port < b.port);
|
|
|
|
@ -663,16 +642,16 @@ bool CSubNet::Match(const CNetAddr &addr) const
|
|
|
|
|
static inline int NetmaskBits(uint8_t x)
|
|
|
|
|
{
|
|
|
|
|
switch(x) {
|
|
|
|
|
case 0x00: return 0; break;
|
|
|
|
|
case 0x80: return 1; break;
|
|
|
|
|
case 0xc0: return 2; break;
|
|
|
|
|
case 0xe0: return 3; break;
|
|
|
|
|
case 0xf0: return 4; break;
|
|
|
|
|
case 0xf8: return 5; break;
|
|
|
|
|
case 0xfc: return 6; break;
|
|
|
|
|
case 0xfe: return 7; break;
|
|
|
|
|
case 0xff: return 8; break;
|
|
|
|
|
default: return -1; break;
|
|
|
|
|
case 0x00: return 0;
|
|
|
|
|
case 0x80: return 1;
|
|
|
|
|
case 0xc0: return 2;
|
|
|
|
|
case 0xe0: return 3;
|
|
|
|
|
case 0xf0: return 4;
|
|
|
|
|
case 0xf8: return 5;
|
|
|
|
|
case 0xfc: return 6;
|
|
|
|
|
case 0xfe: return 7;
|
|
|
|
|
case 0xff: return 8;
|
|
|
|
|
default: return -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -724,11 +703,6 @@ bool operator==(const CSubNet& a, const CSubNet& b)
|
|
|
|
|
return a.valid == b.valid && a.network == b.network && !memcmp(a.netmask, b.netmask, 16);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator!=(const CSubNet& a, const CSubNet& b)
|
|
|
|
|
{
|
|
|
|
|
return !(a==b);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool operator<(const CSubNet& a, const CSubNet& b)
|
|
|
|
|
{
|
|
|
|
|
return (a.network < b.network || (a.network == b.network && memcmp(a.netmask, b.netmask, 16) < 0));
|
|
|
|
|