diff options
author | Yang Tse <yangsita@gmail.com> | 2008-11-17 13:13:15 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2008-11-17 13:13:15 +0000 |
commit | ecd3251542ef6202787b752849356b1a09502e4c (patch) | |
tree | ea788426e31f9fc336e7bb729d3b6248279112d0 /ares/m4 | |
parent | 999c7126b3f9183cd25c863288e91a58ecdea517 (diff) |
Make configure script check if ioctl with the SIOCGIFADDR command can be
used, and define HAVE_IOCTL_SIOCGIFADDR if appropriate.
Diffstat (limited to 'ares/m4')
-rw-r--r-- | ares/m4/cares-functions.m4 | 58 |
1 files changed, 57 insertions, 1 deletions
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 |