Ethereal-dev: [Ethereal-dev] ipv6 check bogus/outdated

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Pekka Savola <pekkas@xxxxxxxxxx>
Date: Mon, 2 Jul 2001 14:56:11 +0300 (EEST)
Hi,

IPv6 enabling in ethereal appears completely bogus.

If your stack isn't one listed in acinlude.m4 (basically KAME or have a
lib in a weird place like /usr/local/v6/lib), there is no way to enable
IPv6 in autoconf.

No wonder, this is from 1999 when most stacks were supplemental ;-)

This bites all Linux distributions except if you have an USAGI-like
supplemental stack libs in a wrong location.

So, what I propose:

 - if user gives --enable-ipv6, there are no stack type checks are done.
User is Always Right.  Currently autoconf does not believe the user!
 - if user doesn't give --enable-ipv6, the check is as it is now, and the
support gets enabled only if you have some of the choice stacks.

(major modernization),

and/or like attached.

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords
--- ethereal-0.8.18/acinclude.m4	Tue May 15 21:36:02 2001
+++ ethereal-0.8.18.new/acinclude.m4	Mon Jul  2 14:20:16 2001
@@ -103,7 +103,7 @@
 	v6lib=none
 
 	AC_MSG_CHECKING([ipv6 stack type])
-	for i in v6d toshiba kame inria zeta linux; do
+	for i in v6d toshiba kame inria zeta linux linux-glibc; do
 		case $i in
 		v6d)
 			AC_EGREP_CPP(yes, [
@@ -160,6 +160,16 @@
 				v6libdir=/usr/inet6
 				CFLAGS="-DINET6 $CFLAGS"
 			fi
+			;;
+		linux-glibc)
+			AC_EGREP_CPP(yes, [
+#include <features.h>
+#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
+#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || __GLIBC__ > 2
+yes
+#endif
+#endif],
+			[v6type=$i; v6lib=inet6; CFLAGS="-DINET6 $CFLAGS"])
 			;;
 		esac
 		if test "$v6type" != "unknown"; then