aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ftp.c')
-rw-r--r--lib/ftp.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index c7246446c..710bee925 100644
--- 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