From 62df0ff025e247a5d1d2850e22a8cdfb9edcbfd7 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 18 Jan 2008 21:51:10 +0000 Subject: [PATCH] Lau Hang Kin found and fixed a problem with the multi interface when doing CONNECT over a proxy. curl_multi_fdset() didn't report back the socket properly during that state, due to a missing case in the switch in the multi_getsock() function. --- CHANGES | 6 ++++++ RELEASE-NOTES | 3 ++- lib/multi.c | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 405655afe..3175ee212 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,12 @@ Changelog +Daniel S (18 Jan 2008) +- Lau Hang Kin found and fixed a problem with the multi interface when doing + CONNECT over a proxy. curl_multi_fdset() didn't report back the socket + properly during that state, due to a missing case in the switch in the + multi_getsock() function. + Yang Tse (17 Jan 2008) - Don't abort tests 518 and 537 when unable to raise the open-file soft limit. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 814935d19..6f44f6dc9 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -57,6 +57,7 @@ This release includes the following bugfixes: o improved pipelining o improved OOM handling for data url encoded HTTP POSTs when read from a file o test suite could pick wrong tool(s) if more than one existed in the PATH + o curl_multi_fdset() failed to return socket while doing CONNECT over proxy This release includes the following known bugs: @@ -81,6 +82,6 @@ advice from friends like these: Gilles Blanc, David Wright, Vikram Saxena, Mateusz Loskot, Gary Maxwell, Dmitry Kurochkin, Mohun Biswas, Richard Atterer, Maxim Perenesenko, Daniel Egger, Jeff Johnson, Nikitinskit Dmitriy, Georg Lippitsch, Eric Landes, - Joe Malicki, Nathan Coulter + Joe Malicki, Nathan Coulter, Lau Hang Kin Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/multi.c b/lib/multi.c index fef632adf..e0a10cfce 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -780,6 +780,7 @@ static int multi_getsock(struct Curl_one_easy *easy, case CURLM_STATE_DOING: return Curl_doing_getsock(easy->easy_conn, socks, numsocks); + case CURLM_STATE_WAITPROXYCONNECT: case CURLM_STATE_WAITCONNECT: return waitconnect_getsock(easy->easy_conn, socks, numsocks);