Commit 32bc30e2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Based on an error report by Philippe Vaucher, we no longer count a retried

connection setup as a follow-redirect. It turns out 1) this fails when a FTP
connection is re-setup and 2) it does make the max-redirs counter behave
wrong. This fix was not verified since the reporter vanished, but I believe
this is the right fix nonetheless.
parent f3bc8e6c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6,6 +6,13 @@

                                  Changelog

Daniel (30 January 2006)
- Based on an error report by Philippe Vaucher, we no longer count a retried
  connection setup as a follow-redirect. It turns out 1) this fails when a FTP
  connection is re-setup and 2) it does make the max-redirs counter behave
  wrong. This fix was not verified since the reporter vanished, but I believe
  this is the right fix nonetheless.

Daniel (24 January 2006)
- Michal Marek provided a patch for FTP that makes libcurl continue to try
  PASV even after EPSV returned a positive response code, if libcurl failed to
+4 −1
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ This release includes the following changes:

This release includes the following bugfixes:

 o re-creating a dead connection is no longer counted internally as a followed
   redirect and thus prevents a weird error that would occur if a FTP
   connection died on an attempted re-use
 o Try PASV after failing to connect to the port the EPSV response contained
 o -P [IP] with ipv6-enabled curl
 o -P [hostname] with ipv6-disabled curl
@@ -51,6 +54,6 @@ advice from friends like these:

 Dov Murik, Jean Jacques Drouin, Andres Garcia, Yang Tse, Gisle Vanem, Dan
 Fandrich, Alexander Lazic, Michael Jahn, Andrew Benham, Bryan Henderson,
 David Shaw, Jon Turner, Duane Cathey, Michal Marek
 David Shaw, Jon Turner, Duane Cathey, Michal Marek, Philippe Vaucher
 
        Thanks! (and sorry if I forgot to mention someone)
+8 −7
Original line number Diff line number Diff line
@@ -1765,17 +1765,18 @@ CURLcode Curl_follow(struct SessionHandle *data,
  size_t newlen;
  char *newest;

  if(!retry) {
    if ((data->set.maxredirs != -1) &&
        (data->set.followlocation >= data->set.maxredirs)) {
      failf(data,"Maximum (%d) redirects followed", data->set.maxredirs);
      return CURLE_TOO_MANY_REDIRECTS;
    }

  if(!retry)
    /* mark the next request as a followed location: */
    data->state.this_is_a_follow = TRUE;

    data->set.followlocation++; /* count location-followers */
  }

  if(data->set.http_auto_referer) {
    /* We are asked to automatically set the previous URL as the