- Fred Machado posted about a weird FTP problem on the curl-users list and when

researching it, it turned out he got a 550 response back from a SIZE command
  and then I fell over the text in RFC3659 that says:

   The presence of the 550 error response to a SIZE command MUST NOT be taken
   by the client as an indication that the file cannot be transferred in the
   current MODE and TYPE.

  In other words: the change I did on September 30th 2008 and that has been
  included in the last two releases were a regression and a bad idea. We MUST
  NOT take a 550 response from SIZE as a hint that the file doesn't exist.
This commit is contained in:
Daniel Stenberg
2008-12-08 20:20:51 +00:00
parent f36eab2608
commit 18371aaff9
8 changed files with 24 additions and 14 deletions

View File

@@ -2190,10 +2190,6 @@ 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;
@@ -3169,7 +3165,6 @@ 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 */