duphandle: use ares_dup()
curl_easy_duphandle() was not properly duping the ares channel. The ares_dup() function was introduced in c-ares 1.6.0 so by starting to use this function we also raise the bar and require c-ares >= 1.6.0 (released Dec 9, 2008) for such builds. Reported by: Ning Dong Bug: http://curl.haxx.se/mail/lib-2010-08/0318.html
This commit is contained in:
parent
70a025f3df
commit
19f45eaa79
@ -37,7 +37,7 @@ Portability
|
|||||||
GnuTLS 1.2
|
GnuTLS 1.2
|
||||||
zlib 1.1.4
|
zlib 1.1.4
|
||||||
libssh2 0.16
|
libssh2 0.16
|
||||||
c-ares 1.5.0
|
c-ares 1.6.0
|
||||||
libidn 0.4.1
|
libidn 0.4.1
|
||||||
*yassl 1.4.0 (http://curl.haxx.se/mail/lib-2008-02/0093.html)
|
*yassl 1.4.0 (http://curl.haxx.se/mail/lib-2008-02/0093.html)
|
||||||
openldap 2.0
|
openldap 2.0
|
||||||
|
@ -700,8 +700,9 @@ CURL *curl_easy_duphandle(CURL *incurl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_ARES
|
#ifdef USE_ARES
|
||||||
/* If we use ares, we setup a new ares channel for the new handle */
|
/* If we use ares, we clone the ares channel for the new handle */
|
||||||
if(ARES_SUCCESS != ares_init(&outcurl->state.areschannel))
|
if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
|
||||||
|
data->state.areschannel))
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -472,6 +472,7 @@ AC_DEFUN([CURL_CHECK_LIB_ARES], [
|
|||||||
ares_channel channel;
|
ares_channel channel;
|
||||||
ares_cancel(channel); /* added in 1.2.0 */
|
ares_cancel(channel); /* added in 1.2.0 */
|
||||||
ares_process_fd(channel, 0, 0); /* added in 1.4.0 */
|
ares_process_fd(channel, 0, 0); /* added in 1.4.0 */
|
||||||
|
ares_dup(&channel, channel); /* added in 1.6.0 */
|
||||||
]])
|
]])
|
||||||
],[
|
],[
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user