From c797ac200ca6eaaf05b03f5738cbbb55ee38eb5d Mon Sep 17 00:00:00 2001 From: Nemoumbra Date: Tue, 11 Aug 2026 04:02:16 +0300 Subject: [PATCH] Fixed IPv6 formatting --- Common/Net/HTTPClient.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Common/Net/HTTPClient.cpp b/Common/Net/HTTPClient.cpp index d8ebb90cf9..8018879eaa 100644 --- a/Common/Net/HTTPClient.cpp +++ b/Common/Net/HTTPClient.cpp @@ -87,10 +87,17 @@ bool Connection::Resolve(const char *host, int port, DNSType type) { static void FormatAddr(char *addrbuf, size_t bufsize, const addrinfo *info) { switch (info->ai_family) { - case AF_INET: - case AF_INET6: - inet_ntop(info->ai_family, &((sockaddr_in *)info->ai_addr)->sin_addr, addrbuf, bufsize); + case AF_INET: { + auto sock_addr = (sockaddr_in*)info->ai_addr; + inet_ntop(info->ai_family, &(sock_addr)->sin_addr, addrbuf, bufsize); break; + } + case AF_INET6: { + auto sock_addr = (sockaddr_in6*)info->ai_addr; + // There's also 'sin6_flowinfo' before 'sin6_addr', so we can't combine these cases into one. + inet_ntop(info->ai_family, &(sock_addr)->sin6_addr, addrbuf, bufsize); + break; + } default: snprintf(addrbuf, bufsize, "(Unknown AF %d)", info->ai_family); break;