From: Daniel Stenberg Date: Mon, 30 Jan 2006 08:20:52 +0000 (+0000) Subject: Based on an error report by Philippe Vaucher, we no longer count a retried X-Git-Tag: upstream/7.37.1~10536 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=32bc30e210ea41552f3dee64edd290a129020dc7;p=platform%2Fupstream%2Fcurl.git 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. --- diff --git a/CHANGES b/CHANGES index d262cfb..bfdb149 100644 --- a/CHANGES +++ b/CHANGES @@ -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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index d2f1c4f..151ce61 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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) diff --git a/lib/transfer.c b/lib/transfer.c index f84594a..18f8f11 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -1765,17 +1765,18 @@ CURLcode Curl_follow(struct SessionHandle *data, size_t newlen; char *newest; - 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) { + 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 */ + data->set.followlocation++; /* count location-followers */ + } if(data->set.http_auto_referer) { /* We are asked to automatically set the previous URL as the