1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

Make configure script check if ioctl with the SIOCGIFADDR command can be

used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate.
This commit is contained in:
Yang Tse 2008-11-17 13:13:15 +00:00
parent 999c7126b3
commit ecd3251542
3 changed files with 117 additions and 2 deletions

View File

@ -10,6 +10,9 @@ Yang Tse (17 Nov 2008)
- Fix a remaining problem in the inet_pton() runtime configure check. And - Fix a remaining problem in the inet_pton() runtime configure check. And
fix internal Curl_inet_pton() failures to reject certain malformed literals. fix internal Curl_inet_pton() failures to reject certain malformed literals.
- Make configure script check if ioctl with the SIOCGIFADDR command can be
used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate.
Daniel Stenberg (16 Nov 2008) Daniel Stenberg (16 Nov 2008)
- Christian Krause fixed a build failure when building with gss support - Christian Krause fixed a build failure when building with gss support
enabled and FTP disabled. enabled and FTP disabled.

View File

@ -16,7 +16,7 @@
#*************************************************************************** #***************************************************************************
# File version for 'aclocal' use. Keep it a single number. # File version for 'aclocal' use. Keep it a single number.
# serial 24 # serial 25
dnl CARES_INCLUDES_ARPA_INET dnl CARES_INCLUDES_ARPA_INET
@ -1291,6 +1291,7 @@ AC_DEFUN([CARES_CHECK_FUNC_IOCTL], [
[Define to 1 if you have the ioctl function.]) [Define to 1 if you have the ioctl function.])
ac_cv_func_ioctl="yes" ac_cv_func_ioctl="yes"
CARES_CHECK_FUNC_IOCTL_FIONBIO CARES_CHECK_FUNC_IOCTL_FIONBIO
CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
ac_cv_func_ioctl="no" ac_cv_func_ioctl="no"
@ -1354,6 +1355,61 @@ AC_DEFUN([CARES_CHECK_FUNC_IOCTL_FIONBIO], [
]) ])
dnl CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR
dnl -------------------------------------------------
dnl Verify if ioctl with the SIOCGIFADDR command is
dnl available, can be compiled, and seems to work. If
dnl all of these are true, then HAVE_IOCTL_SIOCGIFADDR
dnl will be defined.
AC_DEFUN([CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR], [
#
tst_compi_ioctl_siocgifaddr="unknown"
tst_allow_ioctl_siocgifaddr="unknown"
#
if test "$ac_cv_func_ioctl" = "yes"; then
AC_MSG_CHECKING([if ioctl SIOCGIFADDR is compilable])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
$cares_includes_stropts
]],[[
if(0 != ioctl(0, SIOCGIFADDR, 0))
return 1;
]])
],[
AC_MSG_RESULT([yes])
tst_compi_ioctl_siocgifaddr="yes"
],[
AC_MSG_RESULT([no])
tst_compi_ioctl_siocgifaddr="no"
])
fi
#
if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then
AC_MSG_CHECKING([if ioctl SIOCGIFADDR usage allowed])
if test "x$cares_disallow_ioctl_siocgifaddr" != "xyes"; then
AC_MSG_RESULT([yes])
tst_allow_ioctl_siocgifaddr="yes"
else
AC_MSG_RESULT([no])
tst_allow_ioctl_siocgifaddr="no"
fi
fi
#
AC_MSG_CHECKING([if ioctl SIOCGIFADDR might be used])
if test "$tst_compi_ioctl_siocgifaddr" = "yes" &&
test "$tst_allow_ioctl_siocgifaddr" = "yes"; then
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(HAVE_IOCTL_SIOCGIFADDR, 1,
[Define to 1 if you have a working ioctl SIOCGIFADDR function.])
ac_cv_func_ioctl_siocgifaddr="yes"
else
AC_MSG_RESULT([no])
ac_cv_func_ioctl_siocgifaddr="no"
fi
])
dnl CARES_CHECK_FUNC_IOCTLSOCKET dnl CARES_CHECK_FUNC_IOCTLSOCKET
dnl ------------------------------------------------- dnl -------------------------------------------------
dnl Verify if ioctlsocket is available, prototyped, and dnl Verify if ioctlsocket is available, prototyped, and

View File

@ -22,7 +22,7 @@
#*************************************************************************** #***************************************************************************
# File version for 'aclocal' use. Keep it a single number. # File version for 'aclocal' use. Keep it a single number.
# serial 41 # serial 42
dnl CURL_INCLUDES_ARPA_INET dnl CURL_INCLUDES_ARPA_INET
@ -2395,6 +2395,7 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTL], [
[Define to 1 if you have the ioctl function.]) [Define to 1 if you have the ioctl function.])
ac_cv_func_ioctl="yes" ac_cv_func_ioctl="yes"
CURL_CHECK_FUNC_IOCTL_FIONBIO CURL_CHECK_FUNC_IOCTL_FIONBIO
CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
ac_cv_func_ioctl="no" ac_cv_func_ioctl="no"
@ -2458,6 +2459,61 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTL_FIONBIO], [
]) ])
dnl CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR
dnl -------------------------------------------------
dnl Verify if ioctl with the SIOCGIFADDR command is
dnl available, can be compiled, and seems to work. If
dnl all of these are true, then HAVE_IOCTL_SIOCGIFADDR
dnl will be defined.
AC_DEFUN([CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR], [
#
tst_compi_ioctl_siocgifaddr="unknown"
tst_allow_ioctl_siocgifaddr="unknown"
#
if test "$ac_cv_func_ioctl" = "yes"; then
AC_MSG_CHECKING([if ioctl SIOCGIFADDR is compilable])
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
$curl_includes_stropts
]],[[
if(0 != ioctl(0, SIOCGIFADDR, 0))
return 1;
]])
],[
AC_MSG_RESULT([yes])
tst_compi_ioctl_siocgifaddr="yes"
],[
AC_MSG_RESULT([no])
tst_compi_ioctl_siocgifaddr="no"
])
fi
#
if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then
AC_MSG_CHECKING([if ioctl SIOCGIFADDR usage allowed])
if test "x$curl_disallow_ioctl_siocgifaddr" != "xyes"; then
AC_MSG_RESULT([yes])
tst_allow_ioctl_siocgifaddr="yes"
else
AC_MSG_RESULT([no])
tst_allow_ioctl_siocgifaddr="no"
fi
fi
#
AC_MSG_CHECKING([if ioctl SIOCGIFADDR might be used])
if test "$tst_compi_ioctl_siocgifaddr" = "yes" &&
test "$tst_allow_ioctl_siocgifaddr" = "yes"; then
AC_MSG_RESULT([yes])
AC_DEFINE_UNQUOTED(HAVE_IOCTL_SIOCGIFADDR, 1,
[Define to 1 if you have a working ioctl SIOCGIFADDR function.])
ac_cv_func_ioctl_siocgifaddr="yes"
else
AC_MSG_RESULT([no])
ac_cv_func_ioctl_siocgifaddr="no"
fi
])
dnl CURL_CHECK_FUNC_IOCTLSOCKET dnl CURL_CHECK_FUNC_IOCTLSOCKET
dnl ------------------------------------------------- dnl -------------------------------------------------
dnl Verify if ioctlsocket is available, prototyped, and dnl Verify if ioctlsocket is available, prototyped, and