Merge "getnameinfo: Don't add flag NI_NUMERICHOST for well-known prefix address"
diff --git a/libc/dns/net/getnameinfo.c b/libc/dns/net/getnameinfo.c
index 5fa4e37..31d07c5 100644
--- a/libc/dns/net/getnameinfo.c
+++ b/libc/dns/net/getnameinfo.c
@@ -68,6 +68,13 @@
#include <stddef.h>
#include <string.h>
+/* This macro is modelled after the ones in <netinet/in6.h>. */
+/* RFC 6052, section 2.1 */
+#define IN6_IS_ADDR_WKP(a) \
+ ((((a)->s6_addr32[0]) == ntohl(0x0064ff9b)) && \
+ (((a)->s6_addr32[1]) == 0) && \
+ (((a)->s6_addr32[2]) == 0))
+
static const struct afd {
int a_af;
socklen_t a_addrlen;
@@ -248,6 +255,8 @@
;
else if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr))
;
+ else if (IN6_IS_ADDR_WKP(&sin6->sin6_addr))
+ ;
else
flags |= NI_NUMERICHOST;
break;