aboutsummaryrefslogtreecommitdiff
path: root/lib/ftp.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-02-27 12:50:54 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-02-27 12:50:54 +0000
commit52ebf506074c6ab2e3653563f589574f6227616d (patch)
treef6553589021575defdfe95a50e156e7938623dbc /lib/ftp.c
parentd34a4b126e880cf14560ae5f950c094d4614cb2d (diff)
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.
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