make sockaddr_storage checks separate from ipv6 support
authorKen Raeburn <raeburn@mit.edu>
Fri, 31 Aug 2001 05:47:59 +0000 (05:47 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 31 Aug 2001 05:47:59 +0000 (05:47 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13713 dc483132-0cff-0310-8789-dd5450dbe970

src/ChangeLog
src/acconfig.h
src/aclocal.m4

index fa0940dfd90d27e0b73bce0668b8ade211ff474e..c448455299a1457ed182720b8d005550cb5addc2 100644 (file)
@@ -1,3 +1,13 @@
+2001-08-31  Ken Raeburn  <raeburn@mit.edu>
+
+       * aclocal.m4 (KRB5_AC_CHECK_TYPE_WITH_HEADERS,
+       KRB5_AC_CHECK_SOCKADDR_STORAGE): New macros.
+       (KRB5_AC_CHECK_INET6): Call KRB5_AC_CHECK_SOCKADDR_STORAGE, but
+       don't require success for IPv6 support.
+       (KRB5_SOCKADDR_SA_LEN): Change first letter of checking message to
+       lowercase.
+       * acconfig.h (HAVE_STRUCT_SOCKADDR_STORAGE): Undef.
+
 2001-08-30  Ken Raeburn  <raeburn@mit.edu>
 
        * aclocal.m4 (AC_KRB5_TCL_FIND_CONFIG): Do put /usr/include/tcl$v
index 74e4b66446d2e2101ea0d344b1d974beeb062e4d..44870c22da6d7e435eb69399c29c1ab03e61b374 100644 (file)
@@ -26,6 +26,8 @@
 /* Define if there is a socklen_t type; if not, size_t is probably
    what we should use.  */
 #undef HAVE_SOCKLEN_T
+/* Define if "struct sockaddr_storage" is available.  */
+#undef HAVE_STRUCT_SOCKADDR_STORAGE
 
 /* Define if MIT Project Athena default configuration should be used */
 #undef KRB5_ATHENA_COMPAT
index e04708442730a35798ad3692f7e819d462082cfd..695ccbec2582b0ec11ae79732ef6c16f74bd504f 100644 (file)
@@ -241,7 +241,35 @@ case "$enableval" in
   *)   AC_MSG_ERROR(bad value "$enableval" for enable-ipv6 option) ;;
 esac
 ])dnl
+dnl
+AC_DEFUN(KRB5_AC_CHECK_TYPE_WITH_HEADERS,[
+AC_MSG_CHECKING(for type $1)
+changequote(<<,>>)dnl
+varname=`echo $1 | sed 's,[ -],_,g'`
+changequote([,])dnl
+AC_CACHE_VAL(krb5_cv_$varname,[
+AC_TRY_COMPILE([$2],[ $1 foo; ], eval krb5_cv_$varname=yes, eval krb5_cv_$varname=no)])
+eval x="\$krb5_cv_$varname"
+AC_MSG_RESULT($x)
+if eval test "$x" = yes ; then
+  AC_DEFINE_UNQUOTED(HAVE_`echo $varname | tr a-z A-Z`)
+fi])
+dnl
+dnl
+AC_DEFUN(KRB5_AC_CHECK_SOCKADDR_STORAGE,[
+KRB5_AC_CHECK_TYPE_WITH_HEADERS(struct sockaddr_storage, [
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_MACSOCK_H
+#include <macsock.h>
+#else
+#include <sys/socket.h>
+#endif
+#include <netinet/in.h>
+])])dnl
 AC_DEFUN(KRB5_AC_CHECK_INET6,[
+AC_REQUIRE([KRB5_AC_CHECK_SOCKADDR_STORAGE])
 AC_MSG_CHECKING(for IPv6 compile-time support)
 AC_CACHE_VAL(krb5_cv_inet6,[
 dnl NetBSD and Linux both seem to have gotten get*info but not getipnodeby*
@@ -262,7 +290,6 @@ AC_TRY_COMPILE([
 #include <netdb.h>
 ],[
   struct sockaddr_in6 in;
-  struct sockaddr_storage x;
   AF_INET6;
   IN6_IS_ADDR_LINKLOCAL (&in.sin6_addr);
 ],krb5_cv_inet6=yes,krb5_cv_inet6=no)])
@@ -528,7 +555,7 @@ dnl KRB5_SOCKADDR_SA_LEN: define HAVE_SA_LEN if sockaddr contains the sa_len
 dnl component
 dnl
 AC_DEFUN([KRB5_SOCKADDR_SA_LEN],[ dnl
-AC_MSG_CHECKING(Whether struct sockaddr contains sa_len)
+AC_MSG_CHECKING(whether struct sockaddr contains sa_len)
 AC_CACHE_VAL(krb5_cv_sockaddr_sa_len,
 [AC_TRY_COMPILE([#include <sys/types.h>
 #include <sys/socket.h>