r25507: Fix definition of struct sockaddr_storage if
authorJeremy Allison <jra@samba.org>
Thu, 4 Oct 2007 17:35:12 +0000 (17:35 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:31:11 +0000 (12:31 -0500)
struct sockaddr_in6 is defined.
Jeremy.

source/configure.in
source/lib/replace/system/network.h

index dd9d296f640e9c6f8b97f7453f6fe6d76fdd9271..cd111a0218438ce6e5e9b755509b838a4dca8011 100644 (file)
@@ -3195,7 +3195,7 @@ if test x"$samba_cv_HAVE_IPV6" = x"yes"; then
 fi
 
 dnl test for struct sockaddr_storage
-AC_CACHE_CHECK([for ipv6 support],samba_cv_HAVE_STRUCT_SOCKADDR_STORAGE,[
+AC_CACHE_CHECK([for struct sockaddr_storage],samba_cv_HAVE_STRUCT_SOCKADDR_STORAGE,[
 AC_TRY_COMPILE([
 #include <sys/socket.h>
 #include <sys/types.h>],
@@ -3207,6 +3207,19 @@ if test x"$samba_cv_HAVE_STRUCT_SOCKADDR_STORAGE" = x"yes"; then
     AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE,1,[Whether the system has struct sockaddr_storage])
 fi
 
+dnl test for struct struct sockaddr_in6
+AC_CACHE_CHECK([for struct sockaddr_in6],samba_cv_HAVE_STRUCT_SOCKADDR_IN6,[
+AC_TRY_COMPILE([
+#include <sys/socket.h>
+#include <sys/types.h>],
+[
+struct sockaddr_in6 sa6;
+],
+samba_cv_HAVE_STRUCT_SOCKADDR_IN6=yes,samba_cv_HAVE_STRUCT_SOCKADDR_IN6=no)])
+if test x"$samba_cv_HAVE_STRUCT_SOCKADDR_IN6" = x"yes"; then
+    AC_DEFINE(HAVE_STRUCT_SOCKADDR_IN6,1,[Whether the system has struct sockaddr_in6])
+fi
+
 dnl test for struct addrinfo
 AC_CACHE_CHECK([for struct addrinfo],samba_cv_HAVE_STRUCT_ADDRINFO,[
 AC_TRY_COMPILE([
index a09d3bb01b7595bbf408a20d7ec344c92922af36..c2a5dec5af8333d0bfcd3f37f95f1410b70c6e0f 100644 (file)
@@ -127,9 +127,14 @@ typedef unsigned short int sa_family_t;
 #endif
 
 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE
+#ifdef HAVE_STRUCT_SOCKADDR_IN6
+#define sockaddr_storage sockaddr_in6
+#define ss_family sin6_family
+#else
 #define sockaddr_storage sockaddr_in
 #define ss_family sin_family
 #endif
+#endif
 
 #ifndef HOST_NAME_MAX
 #define HOST_NAME_MAX 256