Commit d09b6eca authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Christopher Palow fixed a curl_multi_socket() issue which previous caused

  libcurl to not tell the app properly when a socket was closed (when the name
  resolve done by c-ares is done) and then immediately re-created and put to
  use again (for the actual connection). Since the closure will make the
  "watch status" get lost in several event-based systems libcurl will need to
  tell the app about this close/re-create case.
parent fb2e71b9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -7,6 +7,13 @@
                                  Changelog

Daniel Stenberg (19 Jun 2008)
- Christopher Palow fixed a curl_multi_socket() issue which previous caused
  libcurl to not tell the app properly when a socket was closed (when the name
  resolve done by c-ares is done) and then immediately re-created and put to
  use again (for the actual connection). Since the closure will make the
  "watch status" get lost in several event-based systems libcurl will need to
  tell the app about this close/re-create case.

- Dengminwen found a bug in the connection re-use function when using the
  multi interface with pipelining enabled as it would wrongly check for,
  detect and close "dead connections" even though that connection was already
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ This release includes the following bugfixes:
 o Fixed curl-config --ca
 o Fixed the multi interface connection re-use with NSS-built libcurl
 o connection re-use when using the multi interface with pipelining enabled
 o curl_multi_socket() socket callback fix for close/re-create sockets case

This release includes the following known bugs:

@@ -38,6 +39,6 @@ This release would not have looked like this without help, code, reports and
advice from friends like these:

 Lenny Rachitsky, Axel Tillequin, Arnaud Ebalard, Yang Tse, Dan Fandrich,
 Rob Crittenden, Dengminwen
 Rob Crittenden, Dengminwen, Christopher Palow

        Thanks! (and sorry if I forgot to mention someone)
+5 −0
Original line number Diff line number Diff line
@@ -965,6 +965,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
      easy->result = Curl_is_resolved(easy->easy_conn, &dns);

      if(dns) {
        /* Update sockets here. Mainly because the socket(s) may have been
           closed and the application thus needs to be told, even if it is
           likely that the same socket(s) will again be used further down. */
        singlesocket(multi, easy);

        /* Perform the next step in the connection phase, and then move on
           to the WAITCONNECT state */
        easy->result = Curl_async_resolved(easy->easy_conn,