]> granicus.if.org Git - curl/commitdiff
It appears that there are FTP-servers that return size 0 for files
authorDaniel Stenberg <daniel@haxx.se>
Thu, 27 Feb 2003 12:50:54 +0000 (12:50 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 27 Feb 2003 12:50:54 +0000 (12:50 +0000)
when SIZE is used on the file while being in BINARY mode. To work
around that (stupid) behavior, we attempt to parse the RETR response
even if the SIZE returned size zero.

Debugging help from Salvatore Sorrentino on February 26, 2003.

lib/ftp.c

index c7246446c7f48e40a55824ef9b38aa137fc74dc6..710bee925d65e3a6634c6725693893400c5c1f09 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1854,9 +1854,19 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
 
       int size=-1; /* default unknown size */
 
+
+      /*
+       * It appears that there are FTP-servers that return size 0 for files
+       * when SIZE is used on the file while being in BINARY mode. To work
+       * around that (stupid) behavior, we attempt to parse the RETR response
+       * even if the SIZE returned size zero.
+       *
+       * Debugging help from Salvatore Sorrentino on February 26, 2003.
+       */
+
       if(!dirlist &&
          !data->set.ftp_ascii &&
-         (-1 == downloadsize)) {
+         (downloadsize < 1)) {
         /*
          * It seems directory listings either don't show the size or very
          * often uses size 0 anyway. ASCII transfers may very well turn out