fix ipv6 host name lookup from /etc/hosts
authorFelix Fietkau <nbd@openwrt.org>
Mon, 4 Apr 2005 21:05:07 +0000 (21:05 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 4 Apr 2005 21:05:07 +0000 (21:05 +0000)
SVN-Revision: 559

openwrt/toolchain/uClibc/Makefile
openwrt/toolchain/uClibc/patches/inet6_hosts_resolve.patch [new file with mode: 0644]
openwrt/toolchain/uClibc/uclibc.mk

index 06d7487a4f0bb883a93d8b4a8e114f0a6e1730eb..4fa048c5c4746a64ba0c1e4ac3c7674841ae9cdd 100644 (file)
@@ -7,4 +7,4 @@ prepare: uclibc-configured
 compile: $(UCLIBC_DIR)/lib/libc.a
 install: uclibc
        $(STRIP) $(TARGET_DIR)/lib/*.so
-clean: uclibc-clean
+clean: uclibc-toolclean
diff --git a/openwrt/toolchain/uClibc/patches/inet6_hosts_resolve.patch b/openwrt/toolchain/uClibc/patches/inet6_hosts_resolve.patch
new file mode 100644 (file)
index 0000000..fd1aaa1
--- /dev/null
@@ -0,0 +1,24 @@
+diff -urN uClibc-0.9.27.old/libc/inet/resolv.c uClibc-0.9.27/libc/inet/resolv.c
+--- uClibc-0.9.27.old/libc/inet/resolv.c       2005-01-12 08:59:21.000000000 +0100
++++ uClibc-0.9.27/libc/inet/resolv.c   2005-04-04 22:14:38.000000000 +0200
+@@ -2029,7 +2029,7 @@
+               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, AF_INET6, result_buf,
+                                                                       buf, buflen, result, h_errnop))==0)
+                       return i;
+               switch (*h_errnop) {
+diff -urN uClibc-0.9.27.old/libc/inet/resolv.c uClibc-0.9.27/libc/inet/resolv.c
+--- uClibc-0.9.27.old/libc/inet/resolv.c       2005-04-04 22:16:54.000000000 +0200
++++ uClibc-0.9.27/libc/inet/resolv.c   2005-04-04 22:46:59.000000000 +0200
+@@ -1513,7 +1513,7 @@
+               } else {
+                       DPRINTF("Error\n");
+                       ret=TRY_AGAIN;
+-                      break; /* bad ip address */
++                      continue; /* bad ip address, ignore */
+         }
+         
+               if (action!=GETHOSTENT) {
index f7b6d2be6a9a6635255f6b8aeed53fbc49cd09fc..01c1a00e43d681e0cabbb175902f6290e6360ce0 100644 (file)
@@ -38,6 +38,7 @@ $(DL_DIR)/$(UCLIBC_SOURCE):
 $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
        mkdir -p $(TOOL_BUILD_DIR)
        bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+       $(PATCH) $(UCLIBC_DIR) ./patches
        touch $(UCLIBC_DIR)/.unpacked
 
 $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked