mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-04 13:55:23 -05:00
Inline short, often-called, rarely-changed basic CNetAddr getters
and make them nodiscard. Member functions containing a few lines of code are usually inlined, either implicitly by defining them in the declaration as done here, or declared inline. References https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-inline https://google.github.io/styleguide/cppguide#Inline_Functions https://www.ibm.com/docs/en/i/7.1?topic=only-inline-member-functions-c
This commit is contained in:
parent
5316ae5dd8
commit
4ecfd3eaf4
2 changed files with 5 additions and 25 deletions
|
@ -309,10 +309,6 @@ bool CNetAddr::IsBindAny() const
|
|||
return std::all_of(m_addr.begin(), m_addr.end(), [](uint8_t b) { return b == 0; });
|
||||
}
|
||||
|
||||
bool CNetAddr::IsIPv4() const { return m_net == NET_IPV4; }
|
||||
|
||||
bool CNetAddr::IsIPv6() const { return m_net == NET_IPV6; }
|
||||
|
||||
bool CNetAddr::IsRFC1918() const
|
||||
{
|
||||
return IsIPv4() && (
|
||||
|
@ -400,22 +396,6 @@ bool CNetAddr::IsHeNet() const
|
|||
return IsIPv6() && HasPrefix(m_addr, std::array<uint8_t, 4>{0x20, 0x01, 0x04, 0x70});
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether this object represents a TOR address.
|
||||
* @see CNetAddr::SetSpecial(const std::string &)
|
||||
*/
|
||||
bool CNetAddr::IsTor() const { return m_net == NET_ONION; }
|
||||
|
||||
/**
|
||||
* Check whether this object represents an I2P address.
|
||||
*/
|
||||
bool CNetAddr::IsI2P() const { return m_net == NET_I2P; }
|
||||
|
||||
/**
|
||||
* Check whether this object represents a CJDNS address.
|
||||
*/
|
||||
bool CNetAddr::IsCJDNS() const { return m_net == NET_CJDNS; }
|
||||
|
||||
bool CNetAddr::IsLocal() const
|
||||
{
|
||||
// IPv4 loopback (127.0.0.0/8 or 0.0.0.0/8)
|
||||
|
|
|
@ -162,8 +162,8 @@ public:
|
|||
bool SetSpecial(const std::string& addr);
|
||||
|
||||
bool IsBindAny() const; // INADDR_ANY equivalent
|
||||
bool IsIPv4() const; // IPv4 mapped address (::FFFF:0:0/96, 0.0.0.0/0)
|
||||
bool IsIPv6() const; // IPv6 address (not mapped IPv4, not Tor)
|
||||
[[nodiscard]] bool IsIPv4() const { return m_net == NET_IPV4; } // IPv4 mapped address (::FFFF:0:0/96, 0.0.0.0/0)
|
||||
[[nodiscard]] bool IsIPv6() const { return m_net == NET_IPV6; } // IPv6 address (not mapped IPv4, not Tor)
|
||||
bool IsRFC1918() const; // IPv4 private networks (10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12)
|
||||
bool IsRFC2544() const; // IPv4 inter-network communications (198.18.0.0/15)
|
||||
bool IsRFC6598() const; // IPv4 ISP-level NAT (100.64.0.0/10)
|
||||
|
@ -179,9 +179,9 @@ public:
|
|||
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 IsI2P() const;
|
||||
bool IsCJDNS() const;
|
||||
[[nodiscard]] bool IsTor() const { return m_net == NET_ONION; }
|
||||
[[nodiscard]] bool IsI2P() const { return m_net == NET_I2P; }
|
||||
[[nodiscard]] bool IsCJDNS() const { return m_net == NET_CJDNS; }
|
||||
[[nodiscard]] bool HasCJDNSPrefix() const { return m_addr[0] == 0xfc; }
|
||||
bool IsLocal() const;
|
||||
bool IsRoutable() const;
|
||||
|
|
Loading…
Add table
Reference in a new issue