netaddress: Update CNetAddr for ORCHIDv2
The original ORCHID prefix was deprecated as of 2014-03, the new ORCHIDv2 prefix was allocated by RFC7343 as of 2014-07. We did not consider the original ORCHID prefix routable, and I don't see any reason to consider the new one to be either.
This commit is contained in:
parent
2d16fb7a2b
commit
8be3f30633
3 changed files with 9 additions and 2 deletions
|
@ -204,6 +204,11 @@ bool CNetAddr::IsRFC4843() const
|
|||
return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && (GetByte(12) & 0xF0) == 0x10);
|
||||
}
|
||||
|
||||
bool CNetAddr::IsRFC7343() const
|
||||
{
|
||||
return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && (GetByte(12) & 0xF0) == 0x20);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns Whether or not this is a dummy address that maps an onion address
|
||||
* into IPv6.
|
||||
|
@ -289,7 +294,7 @@ bool CNetAddr::IsValid() const
|
|||
*/
|
||||
bool CNetAddr::IsRoutable() const
|
||||
{
|
||||
return IsValid() && !(IsRFC1918() || IsRFC2544() || IsRFC3927() || IsRFC4862() || IsRFC6598() || IsRFC5737() || (IsRFC4193() && !IsTor()) || IsRFC4843() || IsLocal() || IsInternal());
|
||||
return IsValid() && !(IsRFC1918() || IsRFC2544() || IsRFC3927() || IsRFC4862() || IsRFC6598() || IsRFC5737() || (IsRFC4193() && !IsTor()) || IsRFC4843() || IsRFC7343() || IsLocal() || IsInternal());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -63,7 +63,8 @@ class CNetAddr
|
|||
bool IsRFC3964() const; // IPv6 6to4 tunnelling (2002::/16)
|
||||
bool IsRFC4193() const; // IPv6 unique local (FC00::/7)
|
||||
bool IsRFC4380() const; // IPv6 Teredo tunnelling (2001::/32)
|
||||
bool IsRFC4843() const; // IPv6 ORCHID (2001:10::/28)
|
||||
bool IsRFC4843() const; // IPv6 ORCHID (deprecated) (2001:10::/28)
|
||||
bool IsRFC7343() const; // IPv6 ORCHIDv2 (2001:20::/28)
|
||||
bool IsRFC4862() const; // IPv6 autoconfig (FE80::/64)
|
||||
bool IsRFC6052() const; // IPv6 well-known prefix for IPv4-embedded address (64:FF9B::/96)
|
||||
bool IsRFC6145() const; // IPv6 IPv4-translated address (::FFFF:0:0:0/96) (actually defined in RFC2765)
|
||||
|
|
|
@ -59,6 +59,7 @@ BOOST_AUTO_TEST_CASE(netbase_properties)
|
|||
BOOST_CHECK(ResolveIP("FC00::").IsRFC4193());
|
||||
BOOST_CHECK(ResolveIP("2001::2").IsRFC4380());
|
||||
BOOST_CHECK(ResolveIP("2001:10::").IsRFC4843());
|
||||
BOOST_CHECK(ResolveIP("2001:20::").IsRFC7343());
|
||||
BOOST_CHECK(ResolveIP("FE80::").IsRFC4862());
|
||||
BOOST_CHECK(ResolveIP("64:FF9B::").IsRFC6052());
|
||||
BOOST_CHECK(ResolveIP("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").IsTor());
|
||||
|
|
Loading…
Add table
Reference in a new issue