diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2000-07-25 14:41:02 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2000-07-25 14:41:02 +0000 |
commit | 63428824c90185a612de9fd7c52af1907de3f52d (patch) | |
tree | 1230379e9ad950717ebcaff5d82e310ed2f99782 /lib/libfetch | |
parent | 0d58a2010e644a5cf3058b2f5d3d3a8b858a75cd (diff) | |
download | src-63428824c90185a612de9fd7c52af1907de3f52d.tar.gz src-63428824c90185a612de9fd7c52af1907de3f52d.zip |
If the server reports the size as 0, treat it as unknown. This works around
a bug in some ftp servers (most notably ftp.vmunix.com) which report the
size of a file correctly in ascii mode, but report it as 0 in binary mode.
Reported by: asmodai
Also remove an unneeded initialization.
Notes
Notes:
svn path=/head/; revision=63847
Diffstat (limited to 'lib/libfetch')
-rw-r--r-- | lib/libfetch/ftp.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c index 8e38beb7bf27..031a2434f19e 100644 --- a/lib/libfetch/ftp.c +++ b/lib/libfetch/ftp.c @@ -259,6 +259,8 @@ _ftp_stat(int cd, char *file, struct url_stat *us) _ftp_seterr(FTP_PROTOCOL_ERROR); return -1; } + if (us->size == 0) + us->size = -1; DEBUG(fprintf(stderr, "size: [\033[1m%lld\033[m]\n", us->size)); if ((e = _ftp_cmd(cd, "MDTM %s", s)) != FTP_FILE_STATUS) { @@ -845,9 +847,6 @@ fetchStatFTP(struct url *url, struct url_stat *us, char *flags) if (_ftp_use_http_proxy()) return fetchStatHTTP(url, us, flags); - us->size = -1; - us->atime = us->mtime = 0; - /* connect to server */ if ((cd = _ftp_cached_connect(url, flags)) == NULL) return -1; |