Commit 4c65eb0a authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

CURLOPT_FORBID_REUSE works again with a cleaned up order of doing things in

Curl_done()
parent 318a8258
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@
                                  Changelog

Daniel (5 December 2006)
- Sh Diao reported that CURLOPT_FORBID_REUSE no works, and indeed it broke in
  the 7.16.0 release.

- Martin Skinner brought back bug report #1230118 to haunt us once again.
  (http://curl.haxx.se/bug/view.cgi?id=1230118) curl_getdate() did not work
  properly for all input dates on Windows. It was mostly seen on some TZ time
+2 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ This release includes the following bugfixes:
 o CPU 100% load when HTTP upload connection broke
 o active FTP didn't work with multi interface
 o curl_getdate() could be off one hour for TZ time zones with DST, on windows
 o CURLOPT_FORBID_REUSE works again

Other curl-related news:

@@ -46,6 +47,6 @@ advice from friends like these:

 James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce,
 Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer, Venkat Akella, Toon Verwaest,
 Matt Witherspoon, Alexey Simak, Martin Skinner
 Matt Witherspoon, Alexey Simak, Martin Skinner, Sh Diao

        Thanks! (and sorry if I forgot to mention someone)
+3 −4
Original line number Diff line number Diff line
@@ -4150,8 +4150,6 @@ CURLcode Curl_done(struct connectdata **connp,
     cancelled before we proceed */
  ares_cancel(data->state.areschannel);

  ConnectionDone(conn); /* the connection is no longer in use */

  /* if data->set.reuse_forbid is TRUE, it means the libcurl client has
     forced us to close this no matter what we think.

@@ -4159,8 +4157,7 @@ CURLcode Curl_done(struct connectdata **connp,
     closed in spite of all our efforts to be nice, due to protocol
     restrictions in our or the server's end */
  if(data->set.reuse_forbid || conn->bits.close) {
    CURLcode res2;
    res2 = Curl_disconnect(conn); /* close the connection */
    CURLcode res2 = Curl_disconnect(conn); /* close the connection */

    *connp = NULL; /* to make the caller of this function better detect that
                      this was actually killed here */
@@ -4171,6 +4168,8 @@ CURLcode Curl_done(struct connectdata **connp,
      result = res2;
  }
  else {
    ConnectionDone(conn); /* the connection is no longer in use */

    /* remember the most recently used connection */
    data->state.lastconnect = conn->connectindex;