diff options
-rw-r--r-- | libc/inet/Makefile | 3 | ||||
-rw-r--r-- | libc/inet/getaddrinfo.c | 2 | ||||
-rw-r--r-- | libc/inet/in6_addr.c | 33 | ||||
-rw-r--r-- | libc/inet/resolv.c | 18 |
4 files changed, 36 insertions, 20 deletions
diff --git a/libc/inet/Makefile b/libc/inet/Makefile index efc8cb621..80848517d 100644 --- a/libc/inet/Makefile +++ b/libc/inet/Makefile @@ -50,7 +50,8 @@ MOBJ3= accept.o bind.o connect.o getpeername.o getsockname.o getsockopt.o \ setsockopt.o shutdown.o socket.o socketpair.o CSRC =getservice.c getproto.c hostid.c getnetent.c getnetbynm.c getnetbyad.c \ - inet_net.c ntop.c herror.c if_nametoindex.c gai_strerror.c getaddrinfo.c + inet_net.c ntop.c herror.c if_nametoindex.c gai_strerror.c getaddrinfo.c \ + in6_addr.c COBJS=$(patsubst %.c,%.o, $(CSRC)) diff --git a/libc/inet/getaddrinfo.c b/libc/inet/getaddrinfo.c index 70bdfbbd1..a2f595a6e 100644 --- a/libc/inet/getaddrinfo.c +++ b/libc/inet/getaddrinfo.c @@ -585,7 +585,7 @@ gaih_inet (const char *name, const struct gaih_service *service, { at->family = AF_INET6; if ((req->ai_flags & AI_PASSIVE) == 0) - memcpy (at->addr, &in6addr_loopback, sizeof (struct in6_addr)); + memcpy (at->addr, &__in6addr_loopback, sizeof (struct in6_addr)); atr = at->next; } #endif diff --git a/libc/inet/in6_addr.c b/libc/inet/in6_addr.c new file mode 100644 index 000000000..de90555c9 --- /dev/null +++ b/libc/inet/in6_addr.c @@ -0,0 +1,33 @@ +/* Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Philip Blundell <pjb27@cam.ac.uk>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#define __FORCE_GLIBC +#include <features.h> +#include <netinet/in.h> + +#ifdef __UCLIBC_HAS_IPV6__ +const struct in6_addr __in6addr_any = +{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }; +weak_alias (__in6addr_any, in6addr_any) +const struct in6_addr __in6addr_loopback = +{ { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }; +weak_alias(__in6addr_loopback, in6addr_loopback); +#endif /* __UCLIBC_HAS_IPV6__ */ + + diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index e6ac9d9ce..0cc344399 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -933,14 +933,6 @@ struct hostent *gethostbyname(const char *name) #ifdef L_gethostbyname2 -#ifdef __UCLIBC_HAS_IPV6__ -/* TBD: Not the right place for defining these, I guess */ -const struct in6_addr in6addr_any = - { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }; -const struct in6_addr in6addr_loopback = - { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }; -#endif /* __UCLIBC_HAS_IPV6__ */ - struct hostent *gethostbyname2(const char *name, int family) { #ifndef __UCLIBC_HAS_IPV6__ @@ -1686,16 +1678,6 @@ int gethostbyname_r(const char * name, #ifdef L_gethostbyname2_r -#ifdef __UCLIBC_HAS_IPV6__ -/* TBD: Not the right place for defining these, I guess */ -/* -const struct in6_addr in6addr_any = - { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }; -const struct in6_addr in6addr_loopback = - { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }; -*/ -#endif /* __UCLIBC_HAS_IPV6__ */ - int gethostbyname2_r(const char *name, int family, struct hostent * result_buf, char * buf, size_t buflen, |