Don't tear down the ftp connection if the maximum filesize was exceeded
authorDan Fandrich <dan@coneharvesters.com>
Fri, 30 Mar 2007 01:13:47 +0000 (01:13 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Fri, 30 Mar 2007 01:13:47 +0000 (01:13 +0000)
and added tests 290 and 291 to check.

CHANGES
lib/ftp.c
tests/data/Makefile.am
tests/data/test283
tests/data/test290 [new file with mode: 0644]
tests/data/test291 [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index d4d9f58..ba60cb2 100644 (file)
--- 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()
 
index 6924368..4fe25dc 100644 (file)
--- 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 */
index 21345a5..205ca1c 100644 (file)
@@ -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
index e470c87..922de51 100644 (file)
@@ -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 (file)
index 0000000..82477cb
--- /dev/null
@@ -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\r
+PASS ftp@example.com\r
+PWD\r
+EPSV\r
+TYPE I\r
+SIZE 290\r
+QUIT\r
+</protocol>
+</verify>
+</testcase>
diff --git a/tests/data/test291 b/tests/data/test291
new file mode 100644 (file)
index 0000000..18e039e
--- /dev/null
@@ -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\r
+PASS ftp@example.com\r
+PWD\r
+EPSV\r
+TYPE I\r
+SIZE 291\r
+RETR 291\r
+QUIT\r
+</protocol>
+</verify>
+</testcase>