|
@@ -2052,10 +2052,10 @@ int gethostbyname2_r(const char *name,
|
|
|
if (family == AF_INET)
|
|
|
return gethostbyname_r(name, result_buf, buf, buflen, result, h_errnop);
|
|
|
|
|
|
+ *result = NULL;
|
|
|
if (family != AF_INET6)
|
|
|
return EINVAL;
|
|
|
|
|
|
- *result = NULL;
|
|
|
if (!name)
|
|
|
return EINVAL;
|
|
|
|
|
@@ -2064,7 +2064,7 @@ int gethostbyname2_r(const char *name,
|
|
|
int old_errno = errno;
|
|
|
__set_errno(0);
|
|
|
|
|
|
- i = __get_hosts_byname_r(name, family, result_buf,
|
|
|
+ i = __get_hosts_byname_r(name, AF_INET6 , result_buf,
|
|
|
buf, buflen, result, h_errnop);
|
|
|
if (i == NETDB_SUCCESS) {
|
|
|
__set_errno(old_errno);
|
|
@@ -2431,40 +2431,45 @@ struct hostent *gethostent(void)
|
|
|
#endif
|
|
|
|
|
|
|
|
|
-#ifdef L_gethostbyname
|
|
|
+#ifdef L_gethostbyname2
|
|
|
|
|
|
-struct hostent *gethostbyname(const char *name)
|
|
|
+struct hostent *gethostbyname2(const char *name, int family)
|
|
|
{
|
|
|
+#ifndef __UCLIBC_HAS_IPV6__
|
|
|
+ return family == AF_INET ? gethostbyname(name) : (struct hostent*)NULL;
|
|
|
+#else
|
|
|
static struct hostent h;
|
|
|
- static char buf[sizeof(struct in_addr) +
|
|
|
- sizeof(struct in_addr *) * 2 +
|
|
|
+ static char buf[sizeof(struct in6_addr) +
|
|
|
+ sizeof(struct in6_addr *) * 2 +
|
|
|
sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
struct hostent *hp;
|
|
|
|
|
|
- gethostbyname_r(name, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
+ gethostbyname2_r(name, family, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
return hp;
|
|
|
+#endif
|
|
|
}
|
|
|
-libc_hidden_def(gethostbyname)
|
|
|
+libc_hidden_def(gethostbyname2)
|
|
|
#endif
|
|
|
|
|
|
|
|
|
-#ifdef L_gethostbyname2
|
|
|
+#ifdef L_gethostbyname
|
|
|
|
|
|
-struct hostent *gethostbyname2(const char *name, int family)
|
|
|
+struct hostent *gethostbyname(const char *name)
|
|
|
{
|
|
|
#ifndef __UCLIBC_HAS_IPV6__
|
|
|
- return family == AF_INET ? gethostbyname(name) : (struct hostent*)NULL;
|
|
|
-#else
|
|
|
static struct hostent h;
|
|
|
- static char buf[sizeof(struct in6_addr) +
|
|
|
- sizeof(struct in6_addr *) * 2 +
|
|
|
+ static char buf[sizeof(struct in_addr) +
|
|
|
+ sizeof(struct in_addr *) * 2 +
|
|
|
sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
struct hostent *hp;
|
|
|
|
|
|
- gethostbyname2_r(name, family, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
+ gethostbyname_r(name, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
return hp;
|
|
|
+#else
|
|
|
+ return gethostbyname2(name, AF_INET);
|
|
|
#endif
|
|
|
}
|
|
|
+libc_hidden_def(gethostbyname)
|
|
|
#endif
|
|
|
|
|
|
|