new configure option --enable-threaded-resolver

This commit is contained in:
Daniel Stenberg 2010-04-25 23:24:05 +02:00
parent 6be508dcc2
commit 79dc74e84d
4 changed files with 61 additions and 5 deletions

View File

@ -6,6 +6,14 @@
Changelog Changelog
Daniel Stenberg (25 Apr 2010)
- Based on work by Kamil Dudka, I've introduced the new configure option
--enable-threaded-resolver. When used, the configure script will check for
pthreads and if around, it will build libcurl to use pthreads to do name
resolving in a threaded manner. Note that this is just a fix to offer an
option that can enable the code that already included. The threader resolver
code was mostly added on Jan 26 2010.
Daniel Stenberg (24 Apr 2010) Daniel Stenberg (24 Apr 2010)
- Alex Bligh introduced the --proto and -proto-redir options that limit what - Alex Bligh introduced the --proto and -proto-redir options that limit what
protocols curl accepts for the requests and when following redirects. protocols curl accepts for the requests and when following redirects.

View File

@ -10,6 +10,7 @@ Curl and libcurl 7.20.2
This release includes the following changes: This release includes the following changes:
o added the --proto and -proto-redir options o added the --proto and -proto-redir options
o new configure option --enable-threaded-resolver
This release includes the following bugfixes: This release includes the following bugfixes:

View File

@ -127,7 +127,7 @@ dnl initialize all the info variables
curl_krb4_msg="no (--with-krb4*)" curl_krb4_msg="no (--with-krb4*)"
curl_gss_msg="no (--with-gssapi)" curl_gss_msg="no (--with-gssapi)"
curl_spnego_msg="no (--with-spnego)" 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_ipv6_msg="no (--enable-ipv6)"
curl_idn_msg="no (--with-libidn)" curl_idn_msg="no (--with-libidn)"
curl_manual_msg="no (--enable-manual)" curl_manual_msg="no (--enable-manual)"
@ -2290,6 +2290,28 @@ AM_CONDITIONAL(USE_MANUAL, test x"$USE_MANUAL" = x1)
CURL_CHECK_LIB_ARES CURL_CHECK_LIB_ARES
AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes) AM_CONDITIONAL(USE_EMBEDDED_ARES, test x$embedded_ares = xyes)
CURL_CHECK_OPTION_THREADED_RESOLVER
if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then
AC_MSG_ERROR(
[Options --enable-threaded-resolver and --enable-ares are mutually exclusive])
fi
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 ************************************************************
dnl disable verbose text strings dnl disable verbose text strings
dnl dnl
@ -2483,7 +2505,7 @@ fi
if test "x$HAVE_LIBZ" = "x1"; then if test "x$HAVE_LIBZ" = "x1"; then
SUPPORT_FEATURES="$SUPPORT_FEATURES libz" SUPPORT_FEATURES="$SUPPORT_FEATURES libz"
fi 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" SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS"
fi fi
if test "x$IDN_ENABLED" = "x1"; then if test "x$IDN_ENABLED" = "x1"; then
@ -2625,7 +2647,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
krb4 support: ${curl_krb4_msg} krb4 support: ${curl_krb4_msg}
GSSAPI support: ${curl_gss_msg} GSSAPI support: ${curl_gss_msg}
SPNEGO support: ${curl_spnego_msg} SPNEGO support: ${curl_spnego_msg}
c-ares support: ${curl_ares_msg} resolver: ${curl_res_msg}
ipv6 support: ${curl_ipv6_msg} ipv6 support: ${curl_ipv6_msg}
IDN support: ${curl_idn_msg} IDN support: ${curl_idn_msg}
Build libcurl: Shared=${enable_shared}, Static=${enable_static} Build libcurl: Shared=${enable_shared}, Static=${enable_static}

View File

@ -21,8 +21,33 @@
#*************************************************************************** #***************************************************************************
# File version for 'aclocal' use. Keep it a single number. # 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-threaded-resolver 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 CURL_CHECK_OPTION_ARES
dnl ------------------------------------------------- dnl -------------------------------------------------
@ -433,7 +458,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
dnl finally c-ares will be used dnl finally c-ares will be used
AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support]) AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support])
AC_SUBST([USE_ARES], [1]) AC_SUBST([USE_ARES], [1])
curl_ares_msg="enabled" curl_res_msg="c-ares"
fi fi
fi fi
]) ])