mirror of
https://github.com/OpenVPN/openvpn.git
synced 2025-05-08 21:25:53 +08:00
build: m4/ax_socklen_t.m4: cleanup
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com> Acked-by: David Sommerseth <davids@redhat.com> Signed-off-by: David Sommerseth <davids@redhat.com>
This commit is contained in:
parent
bdd80be1fe
commit
0dbd45db7d
@ -381,10 +381,10 @@ AC_TYPE_OFF_T
|
||||
AC_TYPE_PID_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_UID_T
|
||||
TYPE_SOCKLEN_T
|
||||
AC_HEADER_TIME
|
||||
AX_CPP_VARARG_MACRO_ISO
|
||||
AX_CPP_VARARG_MACRO_GCC
|
||||
AX_TYPE_SOCKLEN_T
|
||||
AX_EMPTY_ARRAY
|
||||
|
||||
dnl Check for more header files.
|
||||
|
@ -1,50 +1,65 @@
|
||||
dnl -- The following is taken from curl's acinclude.m4 --
|
||||
dnl -- The following is base of curl's acinclude.m4 --
|
||||
dnl Check for socklen_t: historically on BSD it is an int, and in
|
||||
dnl POSIX 1g it is a type of its own, but some platforms use different
|
||||
dnl types for the argument to getsockopt, getpeername, etc. So we
|
||||
dnl have to test to find something that will work.
|
||||
AC_DEFUN([TYPE_SOCKLEN_T],
|
||||
[
|
||||
AC_CHECK_TYPE([socklen_t], ,[
|
||||
AC_MSG_CHECKING([for socklen_t equivalent])
|
||||
AC_CACHE_VAL([curl_cv_socklen_t_equiv],
|
||||
[
|
||||
case "$host" in
|
||||
*-mingw*) curl_cv_socklen_t_equiv=int ;;
|
||||
*)
|
||||
# Systems have either "struct sockaddr *" or
|
||||
# "void *" as the second argument to getpeername
|
||||
curl_cv_socklen_t_equiv=
|
||||
for arg2 in "struct sockaddr" void; do
|
||||
for t in int size_t unsigned long "unsigned long"; do
|
||||
AC_TRY_COMPILE([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
int getpeername (int, $arg2 *, $t *);
|
||||
],[
|
||||
$t len;
|
||||
getpeername(0,0,&len);
|
||||
],[
|
||||
curl_cv_socklen_t_equiv="$t"
|
||||
break
|
||||
])
|
||||
done
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "x$curl_cv_socklen_t_equiv" = x; then
|
||||
AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
|
||||
fi
|
||||
])
|
||||
AC_MSG_RESULT($curl_cv_socklen_t_equiv)
|
||||
AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
|
||||
[type to use in place of socklen_t if not defined])],
|
||||
[#include <sys/types.h>
|
||||
AC_DEFUN([AX_TYPE_SOCKLEN_T], [
|
||||
AC_CHECK_TYPE(
|
||||
[socklen_t],
|
||||
,
|
||||
[
|
||||
AS_VAR_PUSHDEF([VAR],[ax_cv_socklen_t_equiv])dnl
|
||||
AC_CACHE_CHECK(
|
||||
[for socklen_t equivalent],
|
||||
[VAR],
|
||||
[
|
||||
#AS_CASE is not supported on <autoconf-2.60
|
||||
case "${host}" in
|
||||
*-mingw*) VAR=int ;;
|
||||
*)
|
||||
# Systems have either "struct sockaddr *" or
|
||||
# "void *" as the second argument to getpeername
|
||||
for arg2 in "struct sockaddr" void; do
|
||||
for t in int size_t unsigned long "unsigned long"; do
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
int getpeername (int, $arg2 *, $t *);
|
||||
]],
|
||||
[[
|
||||
$t len;
|
||||
getpeername(0,0,&len);
|
||||
]]
|
||||
)],
|
||||
[VAR="$t"; break]
|
||||
)
|
||||
done
|
||||
test -n "$VAR" && break
|
||||
done
|
||||
;;
|
||||
esac
|
||||
]
|
||||
AS_VAR_IF(
|
||||
[VAR],
|
||||
[],
|
||||
[AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])],
|
||||
[AC_DEFINE_UNQUOTED(
|
||||
[socklen_t],
|
||||
[$VAR],
|
||||
[type to use in place of socklen_t if not defined]
|
||||
)]
|
||||
)
|
||||
)
|
||||
],
|
||||
[[
|
||||
#include <sys/types.h>
|
||||
#ifdef WIN32
|
||||
#include <ws2tcpip.h>
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
#endif
|
||||
]]
|
||||
)
|
||||
])
|
||||
|
Loading…
x
Reference in New Issue
Block a user