aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--ares/m4/cares-functions.m458
-rw-r--r--m4/curl-functions.m458
3 files changed, 117 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index f50e92d3e..a2edf5493 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,9 @@ Yang Tse (17 Nov 2008)
- Fix a remaining problem in the inet_pton() runtime configure check. And
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)
- Christian Krause fixed a build failure when building with gss support
enabled and FTP disabled.
diff --git a/ares/m4/cares-functions.m4 b/ares/m4/cares-functions.m4
index 245e93bd0..bfc2c0b5f 100644
--- a/ares/m4/cares-functions.m4
+++ b/ares/m4/cares-functions.m4
@@ -16,7 +16,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 24
+# serial 25
dnl CARES_INCLUDES_ARPA_INET
@@ -1291,6 +1291,7 @@ AC_DEFUN([CARES_CHECK_FUNC_IOCTL], [
[Define to 1 if you have the ioctl function.])
ac_cv_func_ioctl="yes"
CARES_CHECK_FUNC_IOCTL_FIONBIO
+ CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR
else
AC_MSG_RESULT([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 -------------------------------------------------
dnl Verify if ioctlsocket is available, prototyped, and
diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
index d5d4da454..45c6fcf71 100644
--- a/m4/curl-functions.m4
+++ b/m4/curl-functions.m4
@@ -22,7 +22,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 41
+# serial 42
dnl CURL_INCLUDES_ARPA_INET
@@ -2395,6 +2395,7 @@ AC_DEFUN([CURL_CHECK_FUNC_IOCTL], [
[Define to 1 if you have the ioctl function.])
ac_cv_func_ioctl="yes"
CURL_CHECK_FUNC_IOCTL_FIONBIO
+ CURL_CHECK_FUNC_IOCTL_SIOCGIFADDR
else
AC_MSG_RESULT([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 -------------------------------------------------
dnl Verify if ioctlsocket is available, prototyped, and