From 038542ea3ef5be195ae30b8d655fcec34dfba9e2 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 30 Sep 2008 09:51:58 +0000 Subject: - 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. --- tests/data/test118 | 3 +++ tests/data/test533 | 2 -- tests/data/test534 | 1 - tests/data/test546 | 3 --- tests/ftpserver.pl | 8 +++++--- 5 files changed, 8 insertions(+), 9 deletions(-) (limited to 'tests') diff --git a/tests/data/test118 b/tests/data/test118 index 6cd086ca2..b2b10c235 100644 --- a/tests/data/test118 +++ b/tests/data/test118 @@ -9,6 +9,9 @@ FAILURE # Server-side + +1 + REPLY RETR 314 bluah you f00l! REPLY EPSV 314 bluah you f00l! diff --git a/tests/data/test533 b/tests/data/test533 index f4446cbe0..a7a57b9a7 100644 --- a/tests/data/test533 +++ b/tests/data/test533 @@ -45,10 +45,8 @@ CWD path EPSV TYPE I SIZE 533 -RETR 533 EPSV SIZE 533 -RETR 533 QUIT diff --git a/tests/data/test534 b/tests/data/test534 index 52bb1e260..1f02df551 100644 --- a/tests/data/test534 +++ b/tests/data/test534 @@ -45,7 +45,6 @@ CWD path EPSV TYPE I SIZE 534 -RETR 534 QUIT diff --git a/tests/data/test546 b/tests/data/test546 index 1dd1cd41e..415848792 100644 --- a/tests/data/test546 +++ b/tests/data/test546 @@ -19,8 +19,6 @@ works -REPLY RETR 550 the file doesn't exist -COUNT RETR 1 REPLY SIZE 550 Can't check for file existence COUNT SIZE 1 @@ -52,7 +50,6 @@ CWD path EPSV TYPE I SIZE 546 -RETR 546 EPSV SIZE 546 RETR 546 diff --git a/tests/ftpserver.pl b/tests/ftpserver.pl index 3841e1f32..52092337d 100644 --- a/tests/ftpserver.pl +++ b/tests/ftpserver.pl @@ -389,12 +389,14 @@ sub SIZE_command { my $size = $data[0]; - if($size) { + if($size ne "") { + # we check for "" to be able to explictly set the size to 0 and yet have + # that send a 213 if($size > -1) { sendcontrol "213 $size\r\n"; } else { - sendcontrol "550 $testno: No such file or directory.\r\n"; + sendcontrol "350 $testno: SIZE is not supported.\r\n"; } } else { @@ -407,7 +409,7 @@ sub SIZE_command { sendcontrol "213 $size\r\n"; } else { - sendcontrol "550 $testno: No such file or directory.\r\n"; + sendcontrol "350 $testno: SIZE is not supported.\r\n"; } } return 0; -- cgit v1.2.3