From c90b9a2399f4cead37bad39f388ce1255e123dc4 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 5 Feb 2020 15:49:33 +0100 Subject: [PATCH] net: extract conditional to bool CNetAddr::IsHeNet and remove redundant public declaration --- src/netaddress.cpp | 7 ++++++- src/netaddress.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/netaddress.cpp b/src/netaddress.cpp index 1cac57a8176..228caf74a93 100644 --- a/src/netaddress.cpp +++ b/src/netaddress.cpp @@ -210,6 +210,11 @@ bool CNetAddr::IsRFC7343() const return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && (GetByte(12) & 0xF0) == 0x20); } +bool CNetAddr::IsHeNet() const +{ + return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x04 && GetByte(12) == 0x70); +} + /** * @returns Whether or not this is a dummy address that maps an onion address * into IPv6. @@ -516,7 +521,7 @@ std::vector CNetAddr::GetGroup(const std::vector &asmap) co } else if (IsTor()) { nStartByte = 6; nBits = 4; - } else if (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x04 && GetByte(12) == 0x70) { + } else if (IsHeNet()) { // for he.net, use /36 groups nBits = 36; } else { diff --git a/src/netaddress.h b/src/netaddress.h index b300b709f38..b7381c1eb40 100644 --- a/src/netaddress.h +++ b/src/netaddress.h @@ -45,7 +45,6 @@ class CNetAddr */ void SetRaw(Network network, const uint8_t *data); - public: bool SetInternal(const std::string& name); bool SetSpecial(const std::string &strName); // for Tor addresses @@ -66,6 +65,7 @@ class CNetAddr 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) + bool IsHeNet() const; // IPv6 Hurricane Electric - https://he.net (2001:0470::/36) bool IsTor() const; bool IsLocal() const; bool IsRoutable() const;