diff --git a/CHANGES b/CHANGES index d4d9f5837406dfd15d612625051e4e5e77ba8b4a..ba60cb2024251d5c686011a6785b7a7119c9e690 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,15 @@ Changelog +Dan F (29 March 2007) +- Don't tear down the ftp connection if the maximum filesize was exceeded + and added tests 290 and 291 to check. + +- Added ftps upload and SSL required tests 401 and 402. + +- Send an EOF message before closing an SCP channel, as recommended by + RFC4254. Enable libssh2 tracing when ssh debugging is turned on. + Yang Tse (27 March 2007) - Internal function Curl_select() renamed to Curl_socket_ready() diff --git a/lib/ftp.c b/lib/ftp.c index 69243684e9c152de5932340b29e74861c988defe..4fe25dc9730a5f5080888dc63290387439ea3d53 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -3020,6 +3020,7 @@ CURLcode Curl_ftp_done(struct connectdata *conn, CURLcode status, bool premature case CURLE_FTP_COULDNT_RETR_FILE: case CURLE_FTP_COULDNT_STOR_FILE: case CURLE_FTP_ACCESS_DENIED: + case CURLE_FILESIZE_EXCEEDED: /* the connection stays alive fine even though this happened */ /* fall-through */ case CURLE_OK: /* doesn't affect the control connection's status */ diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 21345a565ac6d58bde5d43bac3ad5c89afa304b9..205ca1c1fc2760f0022566007a7fd4107213b737 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -38,4 +38,4 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test530 DISABLED test278 test279 test531 test280 test529 test532 test533 \ test534 test535 test281 test537 test282 test283 test284 test538 test285 \ test286 test307 test308 test287 test400 test288 test600 test601 test602 \ - test603 test401 test402 + test603 test401 test402 test290 test291 diff --git a/tests/data/test283 b/tests/data/test283 index e470c87fcdb321a78674d9d87e337372f4922a31..922de51e0d5ecfc8e27c181060c8e9ccee98237e 100644 --- a/tests/data/test283 +++ b/tests/data/test283 @@ -3,6 +3,7 @@ <keywords> TFTP TFTP RRQ +FAILURE </keywords> </info> diff --git a/tests/data/test290 b/tests/data/test290 new file mode 100644 index 0000000000000000000000000000000000000000..82477cba0f997840549b42c6ff7c431d4a7e037d --- /dev/null +++ b/tests/data/test290 @@ -0,0 +1,45 @@ +<testcase> +<info> +<keywords> +FTP +--max-filesize +</keywords> +</info> +# Server-side +<reply> +<size> +85 +</size> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP download maximum filesize exceeded + </name> + <command> +ftp://%HOSTIP:%FTPPORT/290 --max-filesize 30 +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<errorcode> +63 +</errorcode> +<strip> +</strip> +<protocol> +USER anonymous +PASS ftp@example.com +PWD +EPSV +TYPE I +SIZE 290 +QUIT +</protocol> +</verify> +</testcase> diff --git a/tests/data/test291 b/tests/data/test291 new file mode 100644 index 0000000000000000000000000000000000000000..18e039e4fbb1a4535e2449eabf39bffef5a3b6e1 --- /dev/null +++ b/tests/data/test291 @@ -0,0 +1,47 @@ +<testcase> +<info> +<keywords> +FTP +RETR +--max-filesize +</keywords> +</info> +# Server-side +<reply> +<data> +data + to + see +that FTP +works + so does it? +</data> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + <name> +FTP download maximum filesize not exceeded + </name> + <command> +ftp://%HOSTIP:%FTPPORT/291 --max-filesize 100 +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<protocol> +USER anonymous +PASS ftp@example.com +PWD +EPSV +TYPE I +SIZE 291 +RETR 291 +QUIT +</protocol> +</verify> +</testcase>