aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES22
-rw-r--r--RELEASE-NOTES4
-rw-r--r--lib/multi.c3
3 files changed, 23 insertions, 6 deletions
diff --git a/CHANGES b/CHANGES
index b92b229fb..46335ee6f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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);