Skip to content

Commit

Permalink
Merge bitcoin#21564: net: Avoid calling getnameinfo when formatting I…
Browse files Browse the repository at this point in the history
…Pv4 addresses in CNetAddr::ToStringIP

58580a8 net: Avoid calling getnameinfo when formatting IPv4 addresses in CNetAddr::ToStringIP (practicalswift)
5858057 net: Add IPv4ToString (we already have IPv6ToString) (practicalswift)

Pull request description:

  Avoid calling `getnameinfo` when formatting IPv4 addresses in `CNetAddr::ToStringIP`.

ACKs for top commit:
  naumenkogs:
    ACK 58580a8
  0xB10C:
    ACK 58580a8
  vasild:
    ACK 58580a8

Tree-SHA512: 25e3c416acb74908d001baf1cf64c04cbc0d94ce8e7ce5a601f1343062d5d748cb406a3404e6f2b6e7e979c6300b38439e1bfd70ea90ec8c0ec2d7568f09fbcd
  • Loading branch information
MarcoFalke authored and PastaPastaPasta committed Jun 27, 2021
1 parent 8112623 commit 3b32d90
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/netaddress.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,11 @@ enum Network CNetAddr::GetNetwork() const
return m_net;
}

static std::string IPv4ToString(Span<const uint8_t> a)
{
return strprintf("%u.%u.%u.%u", a[0], a[1], a[2], a[3]);
}

static std::string IPv6ToString(Span<const uint8_t> a)
{
assert(a.size() == ADDR_IPV6_SIZE);
Expand All @@ -521,6 +526,7 @@ std::string CNetAddr::ToStringIP(bool fUseGetnameinfo) const
{
switch (m_net) {
case NET_IPV4:
return IPv4ToString(m_addr);
case NET_IPV6: {
if (fUseGetnameinfo) {
CService serv(*this, 0);
Expand All @@ -533,9 +539,6 @@ std::string CNetAddr::ToStringIP(bool fUseGetnameinfo) const
return std::string(name);
}
}
if (m_net == NET_IPV4) {
return strprintf("%u.%u.%u.%u", m_addr[0], m_addr[1], m_addr[2], m_addr[3]);
}
return IPv6ToString(m_addr);
}
case NET_ONION:
Expand Down

0 comments on commit 3b32d90

Please sign in to comment.