Commit 452e52f9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- 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.
parent 00900995
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -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:
+3 −1
Original line number Diff line number Diff line
@@ -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)
+1 −2
Original line number Diff line number Diff line
@@ -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);