On Wed, 21 Apr 2010, Kamil Dudka wrote:
I ugly hacked configure.ac to enable this feature.
Attached here is my first stab at a configure option
--enable-threader-resolver
--
/ daniel.haxx.se
diff --git a/configure.ac b/configure.ac
index 5dfa83e..490461d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -127,7 +127,7 @@ dnl initialize all the info variables
curl_krb4_msg="no (--with-krb4*)"
curl_gss_msg="no (--with-gssapi)"
curl_spnego_msg="no (--with-spnego)"
- curl_ares_msg="no (--enable-ares)"
+ curl_res_msg="default (--enable-ares / --enable-threaded-resolver)"
curl_ipv6_msg="no (--enable-ipv6)"
curl_idn_msg="no (--with-libidn)"
curl_manual_msg="no (--enable-manual)"
@@ -2289,6 +2289,23 @@ AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
CURL_CHECK_LIB_ARES
AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
+CURL_CHECK_OPTION_THREADED_RESOLVER
+
+if test "$want_thres" = "yes"; then
+ AC_CHECK_HEADER(pthread.h,
+ [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have <pthread.h>])
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -pthread"
+ AC_CHECK_LIB(pthread, pthread_create,
+ [ AC_MSG_NOTICE([using POSIX threaded DNS lookup])
+ AC_DEFINE(USE_THREADS_POSIX, 1, [if you want POSIX threaded DNS lookup])
+ USE_THREADS_POSIX=1
+ curl_res_msg="threaded"
+ ],
+ [ CFLAGS="$save_CFLAGS"])
+ ])
+fi
+
dnl ************************************************************
dnl disable verbose text strings
dnl
@@ -2482,7 +2499,7 @@ fi
if test "x$HAVE_LIBZ" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
fi
-if test "x$USE_ARES" = "x1"; then
+if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
fi
if test "x$IDN_ENABLED" = "x1"; then
@@ -2624,7 +2641,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
krb4 support: ${curl_krb4_msg}
GSSAPI support: ${curl_gss_msg}
SPNEGO support: ${curl_spnego_msg}
- c-ares support: ${curl_ares_msg}
+ resolver: ${curl_res_msg}
ipv6 support: ${curl_ipv6_msg}
IDN support: ${curl_idn_msg}
Build libcurl: Shared=${enable_shared}, Static=${enable_static}
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4
index fb11ee3..ec29e2c 100644
--- a/m4/curl-confopts.m4
+++ b/m4/curl-confopts.m4
@@ -21,8 +21,33 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 11
+# serial 12
+dnl CURL_CHECK_OPTION_THREADED_RESOLVER
+dnl -------------------------------------------------
+dnl Verify if configure has been invoked with option
+dnl --enable-threaded-resolver or --disable-threaded-resover, and
+dnl set shell variable want_thres as appropriate.
+
+AC_DEFUN([CURL_CHECK_OPTION_THREADED_RESOLVER], [
+ AC_MSG_CHECKING([whether to enable the threaded resolver])
+ OPT_THRES="default"
+ AC_ARG_ENABLE(threaded_resolver,
+AC_HELP_STRING([--enable-threaded-resolver],[Enable threaded resolver])
+AC_HELP_STRING([--disable-threaded-resover],[Disable threaded resolver]),
+ OPT_THRES=$enableval)
+ case "$OPT_THRES" in
+ yes)
+ dnl --enable-ares option used
+ want_thres="yes"
+ ;;
+ *)
+ dnl configure option not specified
+ want_thres="no"
+ ;;
+ esac
+ AC_MSG_RESULT([$want_thres])
+])
dnl CURL_CHECK_OPTION_ARES
dnl -------------------------------------------------
@@ -433,7 +458,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
dnl finally c-ares will be used
AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support])
AC_SUBST([USE_ARES], [1])
- curl_ares_msg="enabled"
+ curl_res_msg="c-ares"
fi
fi
])
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html