]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Provide support for "transferring" zero bytes FTP files and comparing that
authorDaniel Stenberg <daniel@haxx.se>
Mon, 23 Aug 2004 14:40:43 +0000 (14:40 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 23 Aug 2004 14:40:43 +0000 (14:40 +0000)
the output file actually is zero bytes after the transfer.

tests/FILEFORMAT
tests/ftpserver.pl
tests/runtests.pl

index 2ccd45f5ffcc34d4eaea57c9eb252afa53b1cac5..e7245bc3fd487a64796d086c788fb206b66f9244 100644 (file)
@@ -14,8 +14,8 @@ specified, that will be checked/used if specified. This document includes all
 the subsections currently supported.
 
 <reply>
-<data [nocheck=1]>
-data to sent to the client on its request and later verified that it arrived
+<data [nocheck=1] [sendzero=yes]>
+ยงdata to sent to the client on its request and later verified that it arrived
 safely. Set the nocheck=1 to prevent the test script to verify the arrival
 of this data.
 
@@ -27,6 +27,10 @@ If the data contains 'swsbounce' anywhere within the start and end tag, the
 HTTP server will detect if this is a second request using the same test and
 part number and will then increase the part number with one. This is useful
 for auth tests and similar.
+
+'sendzero' set to yes means that the (FTP) server will "send" the data even if
+the size is zero bytes. Used to verify curl's behaviour on zero bytes
+transfers.
 </data>
 <dataNUM>
 Send back this contents instead of the <data> one. The num is set by:
index 9a171331c3748b68e4f5b8b8bd3b698cafdc5fae..af79fc5d3af1833190328076b23097f8db88ac83 100644 (file)
@@ -318,7 +318,9 @@ sub RETR_command {
         $size += length($_);
     }
 
-    if($size) {
+    my %hash = getpartattr("reply", "data");
+
+    if($size || $hash{'sendzero'}) {
     
         if($rest) {
             # move read pointer forward
index 526d331e61ad60b00d4c961848bb84ca321b0905..18b7e83ef09f414364410a949273728fa4921eb3 100755 (executable)
@@ -1147,7 +1147,7 @@ sub singletest {
     }
 
     my %replyattr = getpartattr("reply", "data");
-    if(!$replyattr{'nocheck'} && @reply) {
+    if(!$replyattr{'nocheck'} && (@reply || $replyattr{'sendzero'})) {
         # verify the received data
         my @out = loadarray($CURLOUT);
         $res = compare("data", \@out, \@reply);