avoid failure of test536

This commit is contained in:
Kamil Dudka 2010-04-21 15:04:04 +00:00
parent 292d528d03
commit 07747c9c9d
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,40 @@
lib/multi.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/lib/multi.c b/lib/multi.c
index 476cb81..74eb0f4 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -933,9 +933,16 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
easy->result = addHandleToSendOrPendPipeline(easy->easy_handle,
easy->easy_conn);
if(CURLE_OK == easy->result) {
- if(async)
+ if(async) {
/* We're now waiting for an asynchronous name lookup */
multistate(easy, CURLM_STATE_WAITRESOLVE);
+#ifdef USE_THREADS_POSIX
+ /* Curl_resolv_getsock() is not properly implemented in case
+ * we use POSIX threaded DNS resolver, we have to hang */
+ result = CURLM_CALL_MULTI_PERFORM;
+ break;
+#endif
+ }
else {
/* after the connect has been sent off, go WAITCONNECT unless the
protocol connect is already done and we can go directly to
@@ -1003,6 +1010,14 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
disconnect_conn = TRUE;
break;
}
+#ifdef USE_THREADS_POSIX
+ /* Curl_resolv_getsock() is not properly implemented yet in case
+ * we use POSIX threaded DNS resolver, we have to hang */
+ Curl_socket_ready(CURL_SOCKET_BAD, CURL_SOCKET_BAD, 100 /* ms */);
+ result = CURLM_CALL_MULTI_PERFORM;
+ break;
+#endif
+
}
break;

View File

@ -7,6 +7,9 @@ Group: Applications/Internet
Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma
Source2: curlbuild.h
# experimentally enabled threaded DNS lookup
Patch1: curl-7.20.1-threaded-dns-multi.patch
# patch making libcurl multilib ready (by excluding static libraries)
Patch101: curl-7.15.3-multilib.patch
@ -95,6 +98,9 @@ for f in CHANGES README; do
mv -f ${f}.utf8 ${f}
done
# upstream patches (not yet applied)
%patch1 -p1
# Fedora patches
%patch101 -p1
%patch102 -p1