]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
configure test for struct sockaddr_in6 sin6_len member
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 9 Dec 2020 10:41:07 +0000 (11:41 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 9 Dec 2020 10:41:07 +0000 (11:41 +0100)
config.h.in
configure
configure.ac
util/net_help.c

index f993b81b021a6c7ba9a90821ae91be85486c53f9..98b5f067be7122db943d991dc0b37f8e49aa669f 100644 (file)
 /* Define to 1 if `ipi_spec_dst' is a member of `struct in_pktinfo'. */
 #undef HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST
 
+/* Define to 1 if `sin6_len' is a member of `struct sockaddr_in6'. */
+#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN
+
 /* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */
 #undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
 
index 00d36a361672b4f793a1fbabc2fd6ad0f9b109d4..c053ab92039ca7f23ab96c21c55b12968516f774 100755 (executable)
--- a/configure
+++ b/configure
@@ -20149,6 +20149,50 @@ $as_echo "no" >&6; }
 
 fi
 
+fi
+
+ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_len" "ac_cv_member_struct_sockaddr_in6_sin6_len" "
+$ac_includes_default
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#ifdef HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+
+"
+if test "x$ac_cv_member_struct_sockaddr_in6_sin6_len" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN 1
+_ACEOF
+
+
 fi
 
 ac_fn_c_check_member "$LINENO" "struct sockaddr_un" "sun_len" "ac_cv_member_struct_sockaddr_un_sun_len" "
index d648f55ad5701fbedd6f03e4f633a63937a0dd2f..fa55366871e5a6705bc77330e48295bd4ad23be0 100644 (file)
@@ -1533,6 +1533,40 @@ if test $ac_cv_func_daemon = yes; then
 ])
 fi
 
+AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_len],,,[
+AC_INCLUDES_DEFAULT
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#ifdef HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+])
 AC_CHECK_MEMBERS([struct sockaddr_un.sun_len],,,[
 AC_INCLUDES_DEFAULT
 #ifdef HAVE_SYS_UN_H
index 8732ea3df94464d6a1d27b7255c9802d447e6f92..9a94556d4891281501abf150604bf21f6b94df4c 100644 (file)
@@ -1632,7 +1632,9 @@ mk_local_addr(void* addr, u_short port, u_char family)
                struct in6_addr* v6addr = (struct in6_addr*)addr;
                struct sockaddr_in6 sin6;
                memset(&sin6, 0, sizeof(sin6));
-               /* sin6.sin6_len = sizeof(sin6); */
+#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN
+               sin6.sin6_len = sizeof(sin6);
+#endif
                sin6.sin6_family = AF_INET6;
                sin6.sin6_addr = *v6addr;
                sin6.sin6_port = port;