--- configure.in.orig Wed Dec 8 12:17:43 2004 +++ configure.in Wed Dec 8 12:18:31 2004 @@ -411,12 +411,56 @@ fi fi -AC_CHECK_FUNC(res_query, ,[AC_CHECK_LIB(resolv, res_query)]) -AC_CHECK_FUNC(res_query, ,[AC_CHECK_LIB(bind, res_query)]) -AC_CHECK_FUNC(DnsQuery, ,[AC_CHECK_LIB(dnsapi, DnsQuery)]) -unset ac_cv_func_res_query -unset ac_cv_func_DnsQuery -AC_CHECK_FUNCS(res_query DnsQuery) +dnl res_query has been seen in libc, libbind and libresolv +if test "x-$ac_cv_header_resolv_h" = "x-yes" ; then + AC_CHECK_FUNCS(res_query) + if test "x-$ac_cv_func_res_query" = "x-yes" ; then + have_res_query=yes + else + AC_CHECK_LIB(resolv, res_query) + if test "x-$ac_cv_lib_resolv_res_query" = "x-yes" ; then + have_res_query=yes + else + AC_CHECK_LIB(bind, res_query) + if test "x-$ac_cv_lib_bind_res_query" = "x-yes" ; then + have_res_query=yes + else + dnl some glibcs have res_query as a macro, so work around it + AC_MSG_CHECKING([for res_query in -lresolv (alternate version)]) + save_libs="$LIBS" + LIBS="-lresolv $LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[res_query(0,0,0,0,0)]])], + [AC_MSG_RESULT(yes) + have_res_query=yes], + [AC_MSG_RESULT(no) + LIBS="$save_libs"]) + fi + fi + fi +fi + +dnl windows calls it DnsQuery +if test "x-$ac_cv_header_windns_h" = "x-yes" ; then + AC_MSG_CHECKING([for DnsQuery in -ldnsapi]) + save_libs="$LIBS" + LIBS="-ldnsapi $LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + #include ]], + [[DnsQuery(0,0,0,0,0,0)]])], + [AC_MSG_RESULT(yes) + have_dnsquery=yes], + [AC_MSG_RESULT(no) + LIBS="$save_libs"]) +fi + +if test "x-$have_res_query" = "x-yes" ; then + AC_DEFINE(HAVE_RES_QUERY,1,[Define to 1 if you have the 'res_query' function.]) +elif test "x-$have_dnsquery" = "x-yes" ; then + AC_DEFINE(HAVE_DNSQUERY,1,[Define to 1 if you have the 'DnsQuery' function.]) +else + AC_MSG_ERROR([no DNS resolver interface (res_query or DnsQuery) found]) +fi dnl inet_ntop/inet_pton have been seen in -lnsl, and sometimes not at all AC_CHECK_FUNC(inet_ntop, ,[AC_CHECK_LIB(nsl, inet_ntop)])