From 795614dcbb8c29a657563a74b36558278e983606 Mon Sep 17 00:00:00 2001 From: hniksic Date: Wed, 26 Nov 2003 09:20:23 -0800 Subject: [PATCH] [svn] Check for struct sockaddr_storage. --- ChangeLog | 4 ++++ aclocal.m4 | 57 +++++++++++++++++++++++++++++---------------------- configure.in | 19 +++++++++-------- src/connect.c | 10 ++++++++- src/connect.h | 6 ------ 5 files changed, 55 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index 83120a4c..b9bce048 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-11-26 Hrvoje Niksic + + * configure.in: Check for struct sockaddr_storage. + 2003-11-12 Hrvoje Niksic * configure.in: Use a more standard checking message when checking diff --git a/aclocal.m4 b/aclocal.m4 index d71269ac..69a5a748 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -167,18 +167,18 @@ dnl START OF IPv6 AUTOCONFIGURATION SUPPORT MACROS dnl ************************************************************ AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[ - ds6_have_sockaddr_in6= + wget_have_sockaddr_in6= AC_CHECK_TYPES([struct sockaddr_in6],[ - ds6_have_sockaddr_in6=yes + wget_have_sockaddr_in6=yes ],[ - ds6_have_sockaddr_in6=no + wget_have_sockaddr_in6=no ],[ #include #include #include ]) - if test "X$ds6_have_sockaddr_in6" = "Xyes"; then : + if test "X$wget_have_sockaddr_in6" = "Xyes"; then : $1 else : $2 @@ -189,12 +189,12 @@ AC_DEFUN([TYPE_STRUCT_SOCKADDR_IN6],[ AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[ AC_REQUIRE([TYPE_STRUCT_SOCKADDR_IN6]) - ds6_member_sin6_scope_id= - if test "X$ds6_have_sockaddr_in6" = "Xyes"; then + wget_member_sin6_scope_id= + if test "X$wget_have_sockaddr_in6" = "Xyes"; then AC_CHECK_MEMBER([struct sockaddr_in6.sin6_scope_id],[ - ds6_member_sin6_scope_id=yes + wget_member_sin6_scope_id=yes ],[ - ds6_member_sin6_scope_id=no + wget_member_sin6_scope_id=no ],[ #include #include @@ -202,7 +202,7 @@ AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[ ]) fi - if test "X$ds6_member_sin6_scope_id" = "Xyes"; then + if test "X$wget_member_sin6_scope_id" = "Xyes"; then AC_DEFINE([HAVE_SOCKADDR_IN6_SCOPE_ID], 1, [Define if struct sockaddr_in6 has the sin6_scope_id member]) $1 @@ -213,7 +213,7 @@ AC_DEFUN([MEMBER_SIN6_SCOPE_ID],[ AC_DEFUN([PROTO_INET6],[ - AC_CACHE_CHECK([for INET6 protocol support], [ds6_cv_proto_inet6],[ + AC_CACHE_CHECK([for INET6 protocol support], [wget_cv_proto_inet6],[ AC_TRY_CPP([ #include #include @@ -225,13 +225,13 @@ AC_DEFUN([PROTO_INET6],[ #error Mlssing AF_INET6 #endif ],[ - ds6_cv_proto_inet6=yes + wget_cv_proto_inet6=yes ],[ - ds6_cv_proto_inet6=no + wget_cv_proto_inet6=no ]) ]) - if test "X$ds6_cv_proto_inet6" = "Xyes"; then : + if test "X$wget_cv_proto_inet6" = "Xyes"; then : $1 else : $2 @@ -241,7 +241,7 @@ AC_DEFUN([PROTO_INET6],[ AC_DEFUN([GETADDRINFO_AI_ADDRCONFIG],[ AC_CACHE_CHECK([if getaddrinfo supports AI_ADDRCONFIG], - [ds6_cv_gai_ai_addrconfig],[ + [wget_cv_gai_ai_addrconfig],[ AC_TRY_CPP([ #include @@ -249,13 +249,13 @@ AC_DEFUN([GETADDRINFO_AI_ADDRCONFIG],[ #error Missing AI_ADDRCONFIG #endif ],[ - ds6_cv_gai_ai_addrconfig=yes + wget_cv_gai_ai_addrconfig=yes ],[ - ds6_cv_gai_ai_addrconfig=no + wget_cv_gai_ai_addrconfig=no ]) ]) - if test "X$ds6_cv_gai_ai_addrconfig" = "Xyes"; then : + if test "X$wget_cv_gai_ai_addrconfig" = "Xyes"; then : $1 else : $2 @@ -264,7 +264,7 @@ AC_DEFUN([GETADDRINFO_AI_ADDRCONFIG],[ AC_DEFUN([GETADDRINFO_AI_ALL],[ - AC_CACHE_CHECK([if getaddrinfo supports AI_ALL],[ds6_cv_gai_ai_all],[ + AC_CACHE_CHECK([if getaddrinfo supports AI_ALL],[wget_cv_gai_ai_all],[ AC_TRY_CPP([ #include @@ -272,13 +272,13 @@ AC_DEFUN([GETADDRINFO_AI_ALL],[ #error Missing AI_ALL #endif ],[ - ds6_cv_gai_ai_all=yes + wget_cv_gai_ai_all=yes ],[ - ds6_cv_gai_ai_all=no + wget_cv_gai_ai_all=no ]) ]) - if test "X$ds6_cv_gai_ai_all" = "Xyes"; then : + if test "X$wget_cv_gai_ai_all" = "Xyes"; then : $1 else : $2 @@ -287,7 +287,7 @@ AC_DEFUN([GETADDRINFO_AI_ALL],[ AC_DEFUN([GETADDRINFO_AI_V4MAPPED],[ - AC_CACHE_CHECK([if getaddrinfo supports AI_V4MAPPED],[ds6_cv_gai_ai_v4mapped],[ + AC_CACHE_CHECK([if getaddrinfo supports AI_V4MAPPED],[wget_cv_gai_ai_v4mapped],[ AC_TRY_CPP([ #include @@ -295,19 +295,26 @@ AC_DEFUN([GETADDRINFO_AI_V4MAPPED],[ #error Missing AI_V4MAPPED #endif ],[ - ds6_cv_gai_ai_v4mapped=yes + wget_cv_gai_ai_v4mapped=yes ],[ - ds6_cv_gai_ai_v4mapped=no + wget_cv_gai_ai_v4mapped=no ]) ]) - if test "X$ds6_cv_gai_ai_v4mapped" = "Xyes"; then : + if test "X$wget_cv_gai_ai_v4mapped" = "Xyes"; then : $1 else : $2 fi ]) +AC_DEFUN([WGET_STRUCT_SOCKADDR_STORAGE],[ + AC_CHECK_TYPES([struct sockaddr_storage],[], [], [ +#include +#include + ]) +]) + dnl ************************************************************ dnl END OF IPv6 AUTOCONFIGURATION SUPPORT MACROS dnl ************************************************************ diff --git a/configure.in b/configure.in index aa0d7f75..98e3b1ef 100644 --- a/configure.in +++ b/configure.in @@ -484,33 +484,33 @@ AC_ARG_ENABLE(ipv6, ) if test "X$ipv6" = "Xyes" || test "X$check_for_ipv6" = "Xyes"; then - AC_CHECK_FUNCS(getaddrinfo,[ - GETADDRINFO_AI_ADDRCONFIG( + AC_CHECK_FUNCS(getaddrinfo, [ + GETADDRINFO_AI_ADDRCONFIG([ AC_DEFINE( [HAVE_GETADDRINFO_AI_ADDRCONFIG], 1, [Define if the system headers support the AI_ADDRCONFIG flag.] ) - ) - GETADDRINFO_AI_V4MAPPED( + ]) + GETADDRINFO_AI_V4MAPPED([ AC_DEFINE( [HAVE_GETADDRINFO_AI_V4MAPPED], 1, [Define if the system headers support the AI_V4MAPPED flag.] ) - ) - GETADDRINFO_AI_ALL( + ]) + GETADDRINFO_AI_ALL([ AC_DEFINE( [HAVE_GETADDRINFO_AI_ALL], 1, [Define if the system headers support the AI_ALL flag.] ) - ) - ],[ + ]) + ], [ AC_MSG_NOTICE([Disabling IPv6 support: your system does not support getaddrinfo(3)]) ipv6=no ]) fi if test "X$ipv6" = "Xyes" || test "X$check_for_ipv6" = "Xyes"; then - PROTO_INET6(,[ + PROTO_INET6([], [ AC_MSG_NOTICE([Disabling IPv6 support: your system does not support the PF_INET6 protocol family]) ipv6=no ]) @@ -524,6 +524,7 @@ if test "X$ipv6" = "Xyes" || test "X$check_for_ipv6" = "Xyes"; then ipv6=no ]) if test "X$ipv6" = "Xyes"; then + WGET_STRUCT_SOCKADDR_STORAGE MEMBER_SIN6_SCOPE_ID fi fi diff --git a/src/connect.c b/src/connect.c index eeb4eb28..83c5014b 100644 --- a/src/connect.c +++ b/src/connect.c @@ -66,7 +66,15 @@ so, delete this exception statement from your version. */ extern int errno; #endif - +/* Define sockaddr_storage where unavailable (presumably on IPv4-only + hosts). */ + +#ifndef ENABLE_IPV6 +# ifndef HAVE_STRUCT_SOCKADDR_STORAGE +# define sockaddr_storage sockaddr_in +# endif +#endif /* ENABLE_IPV6 */ + /* Fill SA as per the data in IP and PORT. SA shoult point to struct sockaddr_storage if ENABLE_IPV6 is defined, to struct sockaddr_in otherwise. */ diff --git a/src/connect.h b/src/connect.h index f0ae5c07..33cc7ab5 100644 --- a/src/connect.h +++ b/src/connect.h @@ -32,12 +32,6 @@ so, delete this exception statement from your version. */ #include "host.h" /* for definition of ip_address */ -#ifndef ENABLE_IPV6 -# ifndef HAVE_SOCKADDR_STORAGE -# define sockaddr_storage sockaddr_in -# endif -#endif /* ENABLE_IPV6 */ - /* Function declarations */ /* Returned by connect_to_host when host name cannot be resolved. */ -- 2.39.2