mirror of
https://github.com/moparisthebest/curl
synced 2025-01-10 21:48:10 -05:00
configure/cmake: check for if_nametoindex()
- adds the check to cmake - fixes the configure check to work for cross-compiled windows builds Closes #3917
This commit is contained in:
parent
12e564ca20
commit
c9c4f7b547
@ -887,6 +887,7 @@ check_symbol_exists(ftruncate "${CURL_INCLUDES}" HAVE_FTRUNCATE)
|
|||||||
check_symbol_exists(getprotobyname "${CURL_INCLUDES}" HAVE_GETPROTOBYNAME)
|
check_symbol_exists(getprotobyname "${CURL_INCLUDES}" HAVE_GETPROTOBYNAME)
|
||||||
check_symbol_exists(getpeername "${CURL_INCLUDES}" HAVE_GETPEERNAME)
|
check_symbol_exists(getpeername "${CURL_INCLUDES}" HAVE_GETPEERNAME)
|
||||||
check_symbol_exists(getsockname "${CURL_INCLUDES}" HAVE_GETSOCKNAME)
|
check_symbol_exists(getsockname "${CURL_INCLUDES}" HAVE_GETSOCKNAME)
|
||||||
|
check_symbol_exists(if_nametoindex "${CURL_INCLUDES}" HAVE_IF_NAMETOINDEX)
|
||||||
check_symbol_exists(getrlimit "${CURL_INCLUDES}" HAVE_GETRLIMIT)
|
check_symbol_exists(getrlimit "${CURL_INCLUDES}" HAVE_GETRLIMIT)
|
||||||
check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE)
|
check_symbol_exists(setlocale "${CURL_INCLUDES}" HAVE_SETLOCALE)
|
||||||
check_symbol_exists(setmode "${CURL_INCLUDES}" HAVE_SETMODE)
|
check_symbol_exists(setmode "${CURL_INCLUDES}" HAVE_SETMODE)
|
||||||
|
@ -3721,6 +3721,7 @@ CURL_CHECK_FUNC_GETHOSTBYNAME_R
|
|||||||
CURL_CHECK_FUNC_GETHOSTNAME
|
CURL_CHECK_FUNC_GETHOSTNAME
|
||||||
CURL_CHECK_FUNC_GETPEERNAME
|
CURL_CHECK_FUNC_GETPEERNAME
|
||||||
CURL_CHECK_FUNC_GETSOCKNAME
|
CURL_CHECK_FUNC_GETSOCKNAME
|
||||||
|
CURL_CHECK_FUNC_IF_NAMETOINDEX
|
||||||
CURL_CHECK_FUNC_GETIFADDRS
|
CURL_CHECK_FUNC_GETIFADDRS
|
||||||
CURL_CHECK_FUNC_GETSERVBYPORT_R
|
CURL_CHECK_FUNC_GETSERVBYPORT_R
|
||||||
CURL_CHECK_FUNC_GMTIME_R
|
CURL_CHECK_FUNC_GMTIME_R
|
||||||
|
@ -241,6 +241,9 @@
|
|||||||
/* Define to 1 if you have the `getsockname' function. */
|
/* Define to 1 if you have the `getsockname' function. */
|
||||||
#cmakedefine HAVE_GETSOCKNAME 1
|
#cmakedefine HAVE_GETSOCKNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `if_nametoindex' function. */
|
||||||
|
#cmakedefine HAVE_IF_NAMETOINDEX 1
|
||||||
|
|
||||||
/* Define to 1 if you have the `getpwuid' function. */
|
/* Define to 1 if you have the `getpwuid' function. */
|
||||||
#cmakedefine HAVE_GETPWUID 1
|
#cmakedefine HAVE_GETPWUID 1
|
||||||
|
|
||||||
|
@ -563,6 +563,23 @@ curl_includes_bsdsocket="\
|
|||||||
[], [], [ $curl_includes_bsdsocket])
|
[], [], [ $curl_includes_bsdsocket])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl CURL_INCLUDES_NETIF
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Set up variable with list of headers that must be
|
||||||
|
dnl included when net/if.h is to be included.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_INCLUDES_NETIF], [
|
||||||
|
curl_includes_netif="\
|
||||||
|
/* includes start */
|
||||||
|
#ifdef HAVE_NET_IF_H
|
||||||
|
# include <net/if.h>
|
||||||
|
#endif
|
||||||
|
/* includes end */"
|
||||||
|
AC_CHECK_HEADERS(
|
||||||
|
net/if.h,
|
||||||
|
[], [], [$curl_includes_netif])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_PREPROCESS_CALLCONV
|
dnl CURL_PREPROCESS_CALLCONV
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
@ -3108,6 +3125,102 @@ AC_DEFUN([CURL_CHECK_FUNC_GETSOCKNAME], [
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl CURL_CHECK_FUNC_IF_NAMETOINDEX
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Verify if if_nametoindex is available, prototyped, and
|
||||||
|
dnl can be compiled. If all of these are true, and
|
||||||
|
dnl usage has not been previously disallowed with
|
||||||
|
dnl shell variable curl_disallow_if_nametoindex, then
|
||||||
|
dnl HAVE_IF_NAMETOINDEX will be defined.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CHECK_FUNC_IF_NAMETOINDEX], [
|
||||||
|
AC_REQUIRE([CURL_INCLUDES_WINSOCK2])dnl
|
||||||
|
AC_REQUIRE([CURL_INCLUDES_NETIF])dnl
|
||||||
|
AC_REQUIRE([CURL_PREPROCESS_CALLCONV])dnl
|
||||||
|
#
|
||||||
|
tst_links_if_nametoindex="unknown"
|
||||||
|
tst_proto_if_nametoindex="unknown"
|
||||||
|
tst_compi_if_nametoindex="unknown"
|
||||||
|
tst_allow_if_nametoindex="unknown"
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING([if if_nametoindex can be linked])
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
$curl_includes_winsock2
|
||||||
|
$curl_includes_bsdsocket
|
||||||
|
#include <net/if.h>
|
||||||
|
]],[[
|
||||||
|
if(0 != if_nametoindex(""))
|
||||||
|
return 1;
|
||||||
|
]])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_links_if_nametoindex="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_links_if_nametoindex="no"
|
||||||
|
])
|
||||||
|
#
|
||||||
|
if test "$tst_links_if_nametoindex" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if if_nametoindex is prototyped])
|
||||||
|
AC_EGREP_CPP([if_nametoindex],[
|
||||||
|
$curl_includes_winsock2
|
||||||
|
$curl_includes_netif
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_proto_if_nametoindex="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_proto_if_nametoindex="no"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
if test "$tst_proto_if_nametoindex" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if if_nametoindex is compilable])
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
$curl_includes_winsock2
|
||||||
|
$curl_includes_netif
|
||||||
|
]],[[
|
||||||
|
if(0 != if_nametoindex(""))
|
||||||
|
return 1;
|
||||||
|
]])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_compi_if_nametoindex="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_compi_if_nametoindex="no"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
if test "$tst_compi_if_nametoindex" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if if_nametoindex usage allowed])
|
||||||
|
if test "x$curl_disallow_if_nametoindex" != "xyes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_allow_if_nametoindex="yes"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_allow_if_nametoindex="no"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING([if if_nametoindex might be used])
|
||||||
|
if test "$tst_links_if_nametoindex" = "yes" &&
|
||||||
|
test "$tst_proto_if_nametoindex" = "yes" &&
|
||||||
|
test "$tst_compi_if_nametoindex" = "yes" &&
|
||||||
|
test "$tst_allow_if_nametoindex" = "yes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_IF_NAMETOINDEX, 1,
|
||||||
|
[Define to 1 if you have the if_nametoindex function.])
|
||||||
|
curl_cv_func_if_nametoindex="yes"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
curl_cv_func_if_nametoindex="no"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_CHECK_FUNC_GETIFADDRS
|
dnl CURL_CHECK_FUNC_GETIFADDRS
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl Verify if getifaddrs is available, prototyped, can
|
dnl Verify if getifaddrs is available, prototyped, can
|
||||||
|
Loading…
Reference in New Issue
Block a user