diff options
-rw-r--r-- | CHANGES | 22 | ||||
-rw-r--r-- | RELEASE-NOTES | 4 | ||||
-rw-r--r-- | lib/multi.c | 3 |
3 files changed, 23 insertions, 6 deletions
@@ -7,11 +7,27 @@ Changelog +Daniel Stenberg (10 Jan 2009) +- Emil Romanus fixed: + + When using the multi interface over HTTP and the server returns a Location + header, the running easy handle will get stuck in the CURLM_STATE_PERFORM + state, leaving the external event loop stuck waiting for data from the + ingoing socket (when using the curl_multi_socket_action stuff). While this + bug was pretty hard to find, it seems to require only a one-line fix. The + break statement on line 1374 in multi.c caused the function to skip the call + to multistate(). + + How to reproduce this bug? Well, that's another question. evhiperfifo.c in + the examples directory chokes on this bug only _sometimes_, probably + depending on how fast the URLs are added. One way of testing the bug out is + writing to hiper.fifo from more than one source at the same time. + Daniel Fandrich (7 Jan 2009) - Unified much of the SessionHandle initialization done in Curl_open() and - curl_easy_reset() by creating Curl_init_userdefined(). This had the side effect - of fixing curl_easy_reset() so it now also resets CURLOPT_FTP_FILEMETHOD and - CURLOPT_SSL_SESSIONID_CACHE + curl_easy_reset() by creating Curl_init_userdefined(). This had the side + effect of fixing curl_easy_reset() so it now also resets + CURLOPT_FTP_FILEMETHOD and CURLOPT_SSL_SESSIONID_CACHE Daniel Stenberg (7 Jan 2009) - Rob Crittenden did once again provide an NSS update: diff --git a/RELEASE-NOTES b/RELEASE-NOTES index aefebf4d2..88daf1753 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -42,6 +42,7 @@ This release includes the following bugfixes: o TTL "leak" in the DNS cache o improved NSS initing o curl_easy_reset now resets more options + o rare Location: follow bug with the multi interface This release includes the following known bugs: @@ -53,6 +54,7 @@ advice from friends like these: Yang Tse, Daniel Fandrich, Jim Meyering, Christian Krause, Andreas Wurf, Markus Koetter, Josef Wolf, Vlad Grachov, Pawel Kierski, Igor Novoseltsev, Fred Machado, Ken Hirsch, Keshav Krity, Patrick Monnerat, Mark Karpeles, - Anthony Bryan, Peter Korsgaard, Phil Lisiecki, Bas Mevissen, Rob Crittenden + Anthony Bryan, Peter Korsgaard, Phil Lisiecki, Bas Mevissen, Rob Crittenden, + Emil Romanus Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/multi.c b/lib/multi.c index 7c5852ab3..d5ddc0873 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -1371,7 +1371,6 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, easy->result = Curl_follow(easy->easy_handle, newurl, FOLLOW_FAKE); if (easy->result) free(newurl); - break; } multistate(easy, CURLM_STATE_DONE); |