svn commit: trunk/busybox/networking

vda at busybox.net vda at busybox.net
Mon Nov 17 15:36:36 UTC 2008


Author: vda
Date: 2008-11-17 07:36:36 -0800 (Mon, 17 Nov 2008)
New Revision: 24074

Log:
nslookup: glibc + IPv6 address of DNS server don't mix (yet)



Modified:
   trunk/busybox/networking/nslookup.c


Changeset:
Modified: trunk/busybox/networking/nslookup.c
===================================================================
--- trunk/busybox/networking/nslookup.c	2008-11-17 15:10:13 UTC (rev 24073)
+++ trunk/busybox/networking/nslookup.c	2008-11-17 15:36:36 UTC (rev 24074)
@@ -133,14 +133,19 @@
 		_res.nsaddr_list[0] = lsa->u.sin;
 	}
 #if ENABLE_FEATURE_IPV6
-// Hoping libc will handle an IPv4 address there too,
-// if it so happens that family is indeed AF_INET
-//	if (lsa->u.sa.sa_family == AF_INET6) {
+	/* Hoped libc can cope with IPv4 address there too.
+	 * No such luck, glibc 2.4 segfaults even with IPv6,
+	 * maybe I misunderstand how to make glibc use IPv6 addr?
+	 * (uclibc 0.9.31+ should work) */
+	if (lsa->u.sa.sa_family == AF_INET6) {
+		// glibc neither SEGVs nor sends any dgrams with this
+		// (strace shows no socket ops):
+		//_res.nscount = 0;
 		_res._u._ext.nscount = 1;
 		/* store a pointer to part of malloc'ed lsa */
 		_res._u._ext.nsaddrs[0] = &lsa->u.sin6;
 		/* must not free(lsa)! */
-//	}
+	}
 #endif
 }
 




More information about the busybox-cvs mailing list