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

Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch

name resolves. It could get stuck in the wrong state.
parent c9c8ee37
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -7,6 +7,10 @@
                                  Changelog


Daniel (31 August 2006)
- Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch
  name resolves. It could get stuck in the wrong state.

Gisle (29 August 2006)
- Added support for other MS-DOS compilers (desides djgpp). All MS-DOS
  compiler now uses the same config.dos file (renamed to config.h by
+4 −1
Original line number Diff line number Diff line
@@ -11,12 +11,14 @@ Curl and libcurl 7.15.6

This release includes the following changes:

 o Added support for other MS-DOS compilers (desides djgpp)
 o CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA were added
 o (FTP) libcurl avoids sending TYPE if the desired type was already set
 o (FTP) CURLOPT_PREQUOTE works even when CURLOPT_NOBODY is set true

This release includes the following bugfixes:

 o multi interface using asynch resolves could get stuck in wrong state
 o the 'running_handles' counter wasn't always updated properly when
   curl_multi_remove_handle() was used
 o (FTP) EPRT transfers with IPv6 didn't work properly
@@ -31,12 +33,13 @@ Other curl-related news:

New curl mirrors:

 o http://curl.geosdreams.info/ is a new Polish mirror
 o http://curl.gfiles.org/ is a new Russian mirror

This release would not have looked like this without help, code, reports and
advice from friends like these:

 Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs,
 Peter Sylvester, David McCreedy
 Peter Sylvester, David McCreedy, Dmitriy Sergeyev

        Thanks! (and sorry if I forgot to mention someone)
+6 −2
Original line number Diff line number Diff line
@@ -639,7 +639,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
             is already freed and gone */
          easy->easy_conn = NULL;           /* no more connection */
        else {
          /* FIX: what if protocol_connect is TRUE here?! */
          /* call again please so that we get the next socket setup */
          result = CURLM_CALL_MULTI_PERFORM;
          if(protocol_connect)
            multistate(easy, CURLM_STATE_DO);
          else
            multistate(easy, CURLM_STATE_WAITCONNECT);
        }
      }