From 0ab95ff2dc2de2afe18c18c608e6c2bdd2bd02bf Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Tue, 10 Mar 1998 08:56:13 +0000 Subject: [PATCH] (AC_KRB_IPV6): rewrote to avoid false positives git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4564 ec53bebd-3082-4978-b11e-865c3cabbd6b --- acinclude.m4 | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index fdf87f084..3dfd4b973 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -697,12 +697,47 @@ if test "$ac_cv_func_vsnprintf_working" = yes; then fi ]) +dnl +dnl test for IPv6 +dnl + AC_DEFUN(AC_KRB_IPV6, [ -AC_MSG_CHECKING(for IPv6) -foo=no -AC_EGREP_HEADER(sockaddr_in6, netinet/in.h, -AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) foo=yes) -AC_EGREP_HEADER(sockaddr_in6, netinet/in6.h, -AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) foo=yes) -AC_MSG_RESULT($foo) +AC_CACHE_CHECK(for IPv6,ac_cv_lib_ipv6, +AC_TRY_COMPILE([ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_NETINET_IN6_H +#include +#endif +], +[ +#if defined(IN6ADDR_ANY_INIT) +struct in6_addr any = IN6ADDR_ANY_INIT; +#elif defined(IPV6ADDR_ANY_INIT) +struct in6_addr any = IPV6ADDR_ANY_INIT; +#else +#error no any? +#endif + struct sockaddr_in6 sin6; + int s; + + s = socket(AF_INET6, SOCK_DGRAM, 0); + + sin6.sin6_family = AF_INET6; + sin6.sin6_port = htons(17); + sin6.sin6_addr = any; + bind(s, (struct sockaddr *)&sin6, sizeof(sin6)); +], +ac_cv_lib_ipv6=yes, +ac_cv_lib_ipv6=no)) +if test "$ac_cv_lib_ipv6" = yes; then + AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6) +fi ])