Commit 296ebf38 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Siegfried Gyuricsko found out that the curl manual said --retry would retry

  on FTP errors in the transient 5xx range. Transient FTP errors are in the
  4xx range. The code itself only tried on 5xx errors that occured _at login_.
  Now the retry code retries on all FTP transfer failures that ended with a
  4xx response.

  (http://curl.haxx.se/bug/view.cgi?id=2911279)
parent b91ed672
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -7,6 +7,14 @@
                                  Changelog

Daniel Stenberg (10 Dec 2009)
- Siegfried Gyuricsko found out that the curl manual said --retry would retry
  on FTP errors in the transient 5xx range. Transient FTP errors are in the
  4xx range. The code itself only tried on 5xx errors that occured _at login_.
  Now the retry code retries on all FTP transfer failures that ended with a
  4xx response.

  (http://curl.haxx.se/bug/view.cgi?id=2911279)

- Constantine Sapuntzakis figured out a case which would lead to libcurl
  accessing alredy freed memory and thus crash when using HTTPS (with
  OpenSSL), multi interface and the CURLOPT_DEBUGFUNCTION and a certain order
+2 −1
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ This release includes the following bugfixes:
 o TFTP BLKSIZE
 o Expect: 100-continue handling when set by the application
 o multi interface with OpenSSL read already freed memory when closing down
 o --retry didn't do right for FTP transient errors

This release includes the following known bugs:

@@ -42,6 +43,6 @@ advice from friends like these:
 Yang Tse, Kamil Dudka, Christian Schmitz, Constantine Sapuntzakis,
 Marco Maggi, Camille Moncelier, Claes Jakobsson, Kevin Baughman,
 Marc Kleine-Budde, Jad Chamcham, Bjorn Augustsson, David Byron,
 Markus Koetter, Chad Monroe, Martin Storsjo
 Markus Koetter, Chad Monroe, Martin Storsjo, Siegfried Gyuricsko

        Thanks! (and sorry if I forgot to mention someone)
+1 −1
Original line number Diff line number Diff line
@@ -1079,7 +1079,7 @@ timestamp.
If a transient error is returned when curl tries to perform a transfer, it
will retry this number of times before giving up. Setting the number to 0
makes curl do no retries (which is the default). Transient error means either:
a timeout, an FTP 5xx response code or an HTTP 5xx response code.
a timeout, an FTP 4xx response code or an HTTP 5xx response code.

When curl is about to retry a transfer, it will first wait one second and then
for all forthcoming retries it will double the waiting time until it reaches
+4 −4
Original line number Diff line number Diff line
@@ -5066,14 +5066,14 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
                }
              }
            } /* if CURLE_OK */
            else if(CURLE_LOGIN_DENIED == res) {
            else if(res) {
              curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response);

              if(response/100 == 5)
              if(response/100 == 4)
                /*
                 * This is typically when the FTP server only allows a certain
                 * amount of users and we are not one of them. It mostly
                 * returns 530 in this case, but all 5xx codes are transient.
                 * amount of users and we are not one of them.  All 4xx codes
                 * are transient.
                 */
                retry = RETRY_FTP;
            }
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Server-side
<reply>
<servercmd>
REPLY PASS 530 temporarily not available
REPLY PASS 430 temporarily not available
</servercmd>
</reply>