Commit 038542ea authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE

  gets a 550 response back for the cases where a download (or NOBODY) is
  wanted. It still allows a 550 as response if the SIZE is used as part of an
  upload process (like if resuming an upload is requested and the file isn't
  there before the upload). I also modified the FTP test server and a few test
  cases accordingly to match this modified behavior.
parent beb14ca6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -6,6 +6,14 @@

                                  Changelog

Daniel Stenberg (30 Sep 2008)
- The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE
  gets a 550 response back for the cases where a download (or NOBODY) is
  wanted. It still allows a 550 as response if the SIZE is used as part of an
  upload process (like if resuming an upload is requested and the file isn't
  there before the upload). I also modified the FTP test server and a few test
  cases accordingly to match this modified behavior.

Daniel Stenberg (29 Sep 2008)
- Daniel Egger provided a patch that allows you to disable proxy support in
  libcurl to somewhat reduce the size of the binary. Run configure
+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ This release includes the following bugfixes:
 o HTTP Digest with a blank realm did wrong
 o CURLINFO_REDIRECT_URL didn't work with the multi interface
 o CURLOPT_RANGE now works for SFTP downloads
 o FTP SIZE response 550 now causes CURLE_REMOTE_FILE_NOT_FOUND

This release includes the following known bugs:

+5 −0
Original line number Diff line number Diff line
@@ -2188,6 +2188,10 @@ static CURLcode ftp_state_size_resp(struct connectdata *conn,
  curl_off_t filesize;
  char *buf = data->state.buffer;

  if((instate != FTP_STOR_SIZE) && (ftpcode == 550))
    /* the file doesn't exist and we're not about to upload */
    return CURLE_REMOTE_FILE_NOT_FOUND;

  /* get the size from the ascii string: */
  filesize = (ftpcode == 213)?curlx_strtoofft(buf+4, NULL, 0):-1;

@@ -3165,6 +3169,7 @@ static CURLcode ftp_done(struct connectdata *conn, CURLcode status,
  case CURLE_UPLOAD_FAILED:
  case CURLE_REMOTE_ACCESS_DENIED:
  case CURLE_FILESIZE_EXCEEDED:
  case CURLE_REMOTE_FILE_NOT_FOUND:
    /* the connection stays alive fine even though this happened */
    /* fall-through */
  case CURLE_OK: /* doesn't affect the control connection's status */
+3 −0
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ FAILURE
</info>
# Server-side
<reply>
<size>
1
</size>
<servercmd>
REPLY RETR 314 bluah you f00l!
REPLY EPSV 314 bluah you f00l!
+0 −2
Original line number Diff line number Diff line
@@ -45,10 +45,8 @@ CWD path
EPSV
TYPE I
SIZE 533
RETR 533
EPSV
SIZE 533
RETR 533
QUIT
</protocol>
</verify>
Loading