mirror of
https://github.com/curl/curl.git
synced 2026-07-24 18:57:18 +03:00
- 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.
This commit is contained in:
parent
beb14ca6d6
commit
038542ea3e
8 changed files with 22 additions and 9 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue