rpms/curl/F-13 0108-curl-7.20.1-threaded-dns-multi.patch, NONE, 1.1 curl.spec, 1.146, 1.147

Kamil Dudka kdudka at fedoraproject.org
Fri Jun 4 10:24:13 UTC 2010


Author: kdudka

Update of /cvs/extras/rpms/curl/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv32200

Modified Files:
	curl.spec 
Added Files:
	0108-curl-7.20.1-threaded-dns-multi.patch 
Log Message:
- workaround for broken applications using curl multi (#599340)

0108-curl-7.20.1-threaded-dns-multi.patch:
 multi.c |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

--- NEW FILE 0108-curl-7.20.1-threaded-dns-multi.patch ---
 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;
 



Index: curl.spec
===================================================================
RCS file: /cvs/extras/rpms/curl/F-13/curl.spec,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -p -r1.146 -r1.147
--- curl.spec	26 May 2010 11:12:49 -0000	1.146
+++ curl.spec	4 Jun 2010 10:24:13 -0000	1.147
@@ -1,7 +1,7 @@
 Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
 Name: curl
 Version: 7.20.1
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: MIT
 Group: Applications/Internet
 Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma
@@ -53,6 +53,9 @@ Patch106: 0106-curl-7.20.1-threaded-dns.
 # exclude test1112 from the test suite (#565305)
 Patch107: 0107-curl-7.20.0-disable-test1112.patch
 
+# workaround for broken application using curl multi (#599340)
+Patch108: 0108-curl-7.20.1-threaded-dns-multi.patch
+
 Provides: webclient
 URL: http://curl.haxx.se/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -142,6 +145,7 @@ done
 %patch104 -p1
 %patch105 -p1
 %patch106 -p1
+%patch108 -p1
 
 # exclude test1112 from the test suite (#565305)
 %patch107 -p1
@@ -237,6 +241,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/aclocal/libcurl.m4
 
 %changelog
+* Fri Jun 04 2010 Kamil Dudka <kdudka at redhat.com> 7.20.1-2
+- workaround for broken applications using curl multi (#599340)
+
 * Wed May 26 2010 Kamil Dudka <kdudka at redhat.com> 7.20.1-1
 - update to 7.20.1
 - now using threaded DNS resolver instead of c-ares (#548269)



More information about the scm-commits mailing list