Fix ipv4/ipv6 resolving. When not using AF_INET, gethostbyname2_r tries to resolve an ipv6 address from /etc/hosts using __get_hosts_byname_r, but with AF_INET instead of the supplied address family. This returns ipv4 addresses marked as ipv6 ones.
SVN-Revision: 6217
This commit is contained in:
parent
b420fccd92
commit
eeb61522b5
1 changed files with 12 additions and 0 deletions
12
toolchain/uClibc/patches/200-ipv6_hosts_resolve.patch
Normal file
12
toolchain/uClibc/patches/200-ipv6_hosts_resolve.patch
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff -pur uClibc.old/libc/inet/resolv.c uClibc.dev/libc/inet/resolv.c
|
||||
--- uClibc.old/libc/inet/resolv.c 2005-08-18 00:49:41.000000000 +0200
|
||||
+++ uClibc.dev/libc/inet/resolv.c 2007-01-27 15:33:39.689171960 +0100
|
||||
@@ -2083,7 +2083,7 @@ int gethostbyname2_r(const char *name, i
|
||||
int old_errno = errno; /* Save the old errno and reset errno */
|
||||
__set_errno(0); /* to check for missing /etc/hosts. */
|
||||
|
||||
- if ((i=__get_hosts_byname_r(name, AF_INET, result_buf,
|
||||
+ if ((i=__get_hosts_byname_r(name, family, result_buf,
|
||||
buf, buflen, result, h_errnop))==0)
|
||||
return i;
|
||||
switch (*h_errnop) {
|
Loading…
Reference in a new issue