From: Francesco Chemolli Date: Thu, 29 Jul 2010 20:24:14 +0000 (+0200) Subject: Refactored IPV6-related checks. X-Git-Tag: take1~402^2~2^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=af494bc88da44a617f9fc49368475cc3285a9f50;p=thirdparty%2Fsquid.git Refactored IPV6-related checks. --- diff --git a/acinclude/os-deps.m4 b/acinclude/os-deps.m4 index c45496f0b1..dfdfe1449d 100644 --- a/acinclude/os-deps.m4 +++ b/acinclude/os-deps.m4 @@ -325,3 +325,59 @@ if test `expr $squid_filedescriptors_num % 64` != 0; then AC_MSG_WARN([$squid_filedescriptors_num is not an multiple of 64. This may cause issues on certain platforms.]) fi ]) + + +dnl Check whether this OS defines sin6_len as a member of sockaddr_in6 as a backup to ss_len +dnl defines HAVE_SIN6_LEN_IN_SAI +dnl TODO: move to AC_CHECK_MEMBER? + +AC_DEFUN([SQUID_CHECK_SIN6_LEN_IN_SAI],[ +AC_CACHE_CHECK([for sin6_len field in struct sockaddr_in6], + ac_cv_have_sin6_len_in_struct_sai, [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#include + ]], [[ struct sockaddr_in6 s; s.sin6_len = 1; ]])],[ ac_cv_have_sin6_len_in_struct_sai="yes" ],[ ac_cv_have_sin6_len_in_struct_sai="no" + ]) +]) +SQUID_DEFINE_BOOL(HAVE_SIN6_LEN_IN_SAI,$ac_cv_have_sin6_len_in_struct_sai, + [Defined if struct sockaddr_in6 has sin6_len]) +]) + + +dnl Check whether this OS defines ss_len as a member of sockaddr_storage +dnl defines HAVE_SS_LEN_IN_SS +dnl TODO: move to AC_CHECK_MEMBER? + +AC_DEFUN([SQUID_CHECK_SS_LEN_IN_SOCKADDR_STORAGE],[ +AC_CACHE_CHECK([for ss_len field in struct sockaddr_storage], + ac_cv_have_ss_len_in_struct_ss, [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#include + ]], [[ struct sockaddr_storage s; s.ss_len = 1; ]])],[ ac_cv_have_ss_len_in_struct_ss="yes" ],[ ac_cv_have_ss_len_in_struct_ss="no" + ]) +]) +SQUID_DEFINE_BOOL(HAVE_SS_LEN_IN_SS,$ac_cv_have_ss_len_in_struct_ss, + [Define if sockaddr_storage has field ss_len]) +]) + + +dnl Check whether this OS defines sin_len as a member of sockaddr_in as a backup to ss_len +dnl defines HAVE_SIN_LEN_IN_SAI +dnl TODO: move to AC_CHECK_MEMBER? + +AC_DEFUN([SQUID_CHECK_SIN_LEN_IN_SOCKADDR_IN],[ +AC_CACHE_CHECK([for sin_len field in struct sockaddr_in], + ac_cv_have_sin_len_in_struct_sai, [ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +#include + ]], [[ struct sockaddr_in s; s.sin_len = 1; ]])],[ ac_cv_have_sin_len_in_struct_sai="yes" ],[ ac_cv_have_sin_len_in_struct_sai="no" + ]) +]) +SQUID_DEFINE_BOOL(HAVE_SIN_LEN_IN_SAI,$ac_cv_have_sin_len_in_struct_sai,[Define if sockaddr_in has field sin_len]) +]) diff --git a/configure.in b/configure.in index 854fa481ab..11c1624760 100644 --- a/configure.in +++ b/configure.in @@ -2492,72 +2492,19 @@ AC_DEFINE_UNQUOTED(SQUID_MAXFD, $squid_filedescriptors_num,[Maximum number of op dnl Enable IPv6 support AC_MSG_CHECKING([whether to enable IPv6]) -use_ipng=yes AC_ARG_ENABLE(ipv6, - AS_HELP_STRING([--disable-ipv6],[Disable IPv6 support. The default is to probe system capabilities on startup.]), -[ case $enableval in - yes|no) - use_ipng=$enableval - ;; - *) - ;; - esac -]) -AC_MSG_RESULT($use_ipng) - -if test "$use_ipng" != "no"; then - AC_DEFINE(USE_IPV6,1,[Enable support for IPv6 ]) -else - AC_DEFINE(USE_IPV6,0,[Enable support for IPv6 ]) -fi - -dnl Check whether this OS defines sin6_len as a member of sockaddr_in6 as a backup to ss_len -AC_CACHE_CHECK([for sin6_len field in struct sockaddr_in6], - ac_cv_have_sin6_len_in_struct_sai, [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include -#include -#include - ]], [[ struct sockaddr_in6 s; s.sin6_len = 1; ]])],[ ac_cv_have_sin6_len_in_struct_sai="yes" ],[ ac_cv_have_sin6_len_in_struct_sai="no" - ]) + AS_HELP_STRING([--disable-ipv6],[Disable IPv6 support. The default is to probe system capabilities on startup.]), [ +SQUID_YESNO([$enableval],[unrecognized argument to --disable-ipv6: $enableval]) ]) -if test "x$ac_cv_have_sin6_len_in_struct_sai" = "xyes" ; then - AC_DEFINE(HAVE_SIN6_LEN_IN_SAI, 1, [Does struct sockaddr_in6 have sin6_len? 1: Yes, 0: No]) -else - AC_DEFINE(HAVE_SIN6_LEN_IN_SAI, 0, [Does struct sockaddr_in6 have sin6_len? 1: Yes, 0: No]) -fi +AC_MSG_RESULT(${use_ipng:=yes}) +SQUID_DEFINE_BOOL(USE_IPV6,$use_ipng,[Enable support for IPv6 ]) -dnl Check whether this OS defines ss_len as a member of sockaddr_storage -AC_CACHE_CHECK([for ss_len field in struct sockaddr_storage], - ac_cv_have_ss_len_in_struct_ss, [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include -#include -#include - ]], [[ struct sockaddr_storage s; s.ss_len = 1; ]])],[ ac_cv_have_ss_len_in_struct_ss="yes" ],[ ac_cv_have_ss_len_in_struct_ss="no" - ]) -]) -if test "x$ac_cv_have_ss_len_in_struct_ss" = "xyes" ; then - AC_DEFINE(HAVE_SS_LEN_IN_SS, 1, [Does struct sockaddr_storage have ss_len? 1: Yes, 0: No]) -else - AC_DEFINE(HAVE_SS_LEN_IN_SS, 0, [Does struct sockaddr_storage have ss_len? 1: Yes, 0: No]) +if test "x$use_ipng" = "xyes" ; then + SQUID_CHECK_SIN6_LEN_IN_SAI + SQUID_CHECK_SS_LEN_IN_SOCKADDR_STORAGE + SQUID_CHECK_SIN_LEN_IN_SOCKADDR_IN fi -dnl Check whether this OS defines sin_len as a member of sockaddr_in as a backup to ss_len -AC_CACHE_CHECK([for sin_len field in struct sockaddr_in], - ac_cv_have_sin_len_in_struct_sai, [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#include -#include -#include - ]], [[ struct sockaddr_in s; s.sin_len = 1; ]])],[ ac_cv_have_sin_len_in_struct_sai="yes" ],[ ac_cv_have_sin_len_in_struct_sai="no" - ]) -]) -if test "x$ac_cv_have_sin_len_in_struct_sai" = "xyes" ; then - AC_DEFINE(HAVE_SIN_LEN_IN_SAI, 1, [Does struct sockaddr_in have sin_len? 1: Yes, 0: No]) -else - AC_DEFINE(HAVE_SIN_LEN_IN_SAI, 0, [Does struct sockaddr_in have sin_len? 1: Yes, 0: No]) -fi dnl Check for libcrypt CRYPTLIB=