From: Daniel Stenberg Date: Fri, 9 May 2008 12:59:24 +0000 (+0000) Subject: - Stefan Krause reported a busy-looping case when using the multi interface X-Git-Tag: upstream/7.37.1~7848 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0510759bc4902f6b15b476f9ae94403beb9a02cb;p=platform%2Fupstream%2Fcurl.git - Stefan Krause reported a busy-looping case when using the multi interface and doing CONNECT to a proxy. The app would then busy-loop until the proxy completed its response. --- diff --git a/CHANGES b/CHANGES index 52b50a8..d0e41a5 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,11 @@ Changelog +Daniel Stenberg (9 May 2008) +- Stefan Krause reported a busy-looping case when using the multi interface + and doing CONNECT to a proxy. The app would then busy-loop until the proxy + completed its response. + Michal Marek (9 May 2008) - Make Curl_write and it's callees accept a const pointer, in preparation of tetetest's patch for curl_easy_send() diff --git a/RELEASE-NOTES b/RELEASE-NOTES index f2565fa..1e85e25 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -32,6 +32,7 @@ This release includes the following bugfixes: o configure detecting debug-enabled c-ares o microsecond resolution keys for internal splay trees o krb4 and krb5 ftp segfault + o multi interface busy loop for CONNECT requests This release includes the following known bugs: diff --git a/lib/multi.c b/lib/multi.c index 48e7c41..1034180 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -722,6 +722,12 @@ static int waitconnect_getsock(struct connectdata *conn, return GETSOCK_BLANK; sock[0] = conn->sock[FIRSTSOCKET]; + + /* when we've sent a CONNECT to a proxy, we should rather wait for the + socket to become readable to be able to get the response headers */ + if(conn->bits.tunnel_connecting) + return GETSOCK_READSOCK(0); + return GETSOCK_WRITESOCK(0); }