Просмотр исходного кода

return the requested string as the "canonical name" for numeric addresses

previously NULL was returned in ai_canonname, resulting in crashes in
some callers. this behavior was incorrect. note however that the new
behavior differs from glibc, which performs reverse dns lookups. POSIX
is very clear that a reverse DNS lookup must not be performed for
numeric addresses.
Rich Felker 14 лет назад
Родитель
Сommit
e2cc0bee11
1 измененных файлов с 1 добавлено и 0 удалено
  1. 1 0
      src/network/getaddrinfo.c

+ 1 - 0
src/network/getaddrinfo.c

@@ -117,6 +117,7 @@ int getaddrinfo(const char *host, const char *serv, const struct addrinfo *hint,
 		buf->ai.ai_addr = (void *)&buf->sa;
 		buf->ai.ai_addrlen = family==AF_INET6 ? sizeof sa.sin6 : sizeof sa.sin;
 		buf->ai.ai_family = family;
+		buf->ai.ai_canonname = (char *)host;
 		buf->sa = sa;
 		buf->sa.sin.sin_port = port;
 		*res = &buf->ai;