net/ToString: check family==AF_INET6 instead of looking for colons

This commit is contained in:
Max Kellermann 2023-09-18 21:59:24 +02:00
parent 9398599816
commit 592649d3f2

View File

@ -70,13 +70,13 @@ ToString(SocketAddress address) noexcept
char host[NI_MAXHOST], serv[NI_MAXSERV];
int ret = getnameinfo(address.GetAddress(), address.GetSize(),
host, sizeof(host), serv, sizeof(serv),
NI_NUMERICHOST|NI_NUMERICSERV);
NI_NUMERICHOST | NI_NUMERICSERV);
if (ret != 0)
return "unknown";
if (serv[0] != 0 && (serv[0] != '0' || serv[1] != 0)) {
#ifdef HAVE_IPV6
if (std::strchr(host, ':') != nullptr) {
if (address.GetFamily() == AF_INET6) {
return fmt::format("[{}]:{}", host, serv);
}
#endif