|
@@ -146,7 +146,6 @@
|
|
|
#include <netinet/in.h>
|
|
|
#include <arpa/inet.h>
|
|
|
#include <stdlib.h>
|
|
|
-#include <malloc.h>
|
|
|
#include <unistd.h>
|
|
|
#include <resolv.h>
|
|
|
#include <netdb.h>
|
|
@@ -219,7 +218,6 @@ libc_hidden_proto(__ctype_b_loc)
|
|
|
#elif defined __UCLIBC_HAS_CTYPE_TABLES__
|
|
|
libc_hidden_proto(__ctype_b)
|
|
|
#endif
|
|
|
-libc_hidden_proto(__uc_malloc)
|
|
|
int __libc_getdomainname(char *name, size_t len);
|
|
|
libc_hidden_proto(__libc_getdomainname)
|
|
|
|
|
@@ -1150,17 +1148,13 @@ void attribute_hidden __close_nameservers(void)
|
|
|
|
|
|
struct hostent *gethostbyname(const char *name)
|
|
|
{
|
|
|
- static struct {
|
|
|
- struct hostent h;
|
|
|
- char buf[sizeof(struct in_addr) +
|
|
|
- sizeof(struct in_addr *)*2 +
|
|
|
- sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
- } *sp;
|
|
|
+ static struct hostent h;
|
|
|
+ static char buf[sizeof(struct in_addr) +
|
|
|
+ sizeof(struct in_addr *)*2 +
|
|
|
+ sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
struct hostent *hp;
|
|
|
|
|
|
- free(sp);
|
|
|
- sp = __uc_malloc(sizeof(*sp));
|
|
|
- gethostbyname_r(name, &sp->h, sp->buf, sizeof(sp->buf), &hp, &h_errno);
|
|
|
+ gethostbyname_r(name, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
|
|
|
return hp;
|
|
|
}
|
|
@@ -1174,17 +1168,13 @@ struct hostent *gethostbyname2(const char *name, int family)
|
|
|
#ifndef __UCLIBC_HAS_IPV6__
|
|
|
return family == AF_INET ? gethostbyname(name) : (struct hostent*)0;
|
|
|
#else
|
|
|
- static struct {
|
|
|
- struct hostent h;
|
|
|
- char buf[sizeof(struct in6_addr) +
|
|
|
- sizeof(struct in6_addr *)*2 +
|
|
|
- sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
- } *sp;
|
|
|
+ static struct hostent h;
|
|
|
+ static char buf[sizeof(struct in6_addr) +
|
|
|
+ sizeof(struct in6_addr *)*2 +
|
|
|
+ sizeof(char *)*ALIAS_DIM + 384 + 32];
|
|
|
struct hostent *hp;
|
|
|
|
|
|
- free(sp);
|
|
|
- sp = __uc_malloc(sizeof(*sp));
|
|
|
- gethostbyname2_r(name, family, &sp->h, sp->buf, sizeof(sp->buf), &hp, &h_errno);
|
|
|
+ gethostbyname2_r(name, family, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
|
|
|
return hp;
|
|
|
#endif
|
|
@@ -1521,21 +1511,17 @@ libc_hidden_def(res_querydomain)
|
|
|
#ifdef L_gethostbyaddr
|
|
|
struct hostent *gethostbyaddr (const void *addr, socklen_t len, int type)
|
|
|
{
|
|
|
- static struct {
|
|
|
- struct hostent h;
|
|
|
- char buf[
|
|
|
+ static struct hostent h;
|
|
|
+ static char buf[
|
|
|
#ifndef __UCLIBC_HAS_IPV6__
|
|
|
sizeof(struct in_addr) + sizeof(struct in_addr *)*2 +
|
|
|
#else
|
|
|
sizeof(struct in6_addr) + sizeof(struct in6_addr *)*2 +
|
|
|
#endif
|
|
|
sizeof(char *)*ALIAS_DIM + 384 + 32 ];
|
|
|
- } *sp;
|
|
|
struct hostent *hp;
|
|
|
|
|
|
- free(sp);
|
|
|
- sp = __uc_malloc(sizeof(*sp));
|
|
|
- gethostbyaddr_r(addr, len, type, &sp->h, sp->buf, sizeof(sp->buf), &hp, &h_errno);
|
|
|
+ gethostbyaddr_r(addr, len, type, &h, buf, sizeof(buf), &hp, &h_errno);
|
|
|
|
|
|
return hp;
|
|
|
}
|
|
@@ -1770,9 +1756,8 @@ libc_hidden_def(gethostent_r)
|
|
|
|
|
|
struct hostent *gethostent(void)
|
|
|
{
|
|
|
- static struct {
|
|
|
- struct hostent h;
|
|
|
- char buf[
|
|
|
+ static struct hostent h;
|
|
|
+ static char buf[
|
|
|
#ifndef __UCLIBC_HAS_IPV6__
|
|
|
sizeof(struct in_addr) + sizeof(struct in_addr *)*2 +
|
|
|
#else
|
|
@@ -1780,13 +1765,10 @@ struct hostent *gethostent(void)
|
|
|
#endif
|
|
|
sizeof(char *)*ALIAS_DIM +
|
|
|
80 + 2 ];
|
|
|
- } *sp;
|
|
|
struct hostent *host;
|
|
|
|
|
|
- free(sp);
|
|
|
- sp = __uc_malloc(sizeof(*sp));
|
|
|
__UCLIBC_MUTEX_LOCK(mylock);
|
|
|
- gethostent_r(&sp->h, sp->buf, sizeof(sp->buf), &host, &h_errno);
|
|
|
+ gethostent_r(&h, buf, sizeof(buf), &host, &h_errno);
|
|
|
__UCLIBC_MUTEX_UNLOCK(mylock);
|
|
|
return host;
|
|
|
}
|