From 3b239ee4ea18c9ed169378acae2c157d0abdbbb6 Mon Sep 17 00:00:00 2001 From: landley Date: Tue, 10 Jan 2006 06:36:00 +0000 Subject: The brain-dead FTP servers on Solaris don't support the size command. git-svn-id: svn://busybox.net/trunk/busybox@13222 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- networking/ftpgetput.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 1d5b18624..7a0ba7772 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c @@ -143,6 +143,9 @@ static int ftp_recieve(ftp_host_info_t *server, FILE *control_stream, if (safe_strtoul(buf + 4, &value)) bb_error_msg_and_die("SIZE error: %s", buf + 4); filesize = value; + } else { + filesize = -1; + do_continue = 0; } if ((local_path[0] == '-') && (local_path[1] == '\0')) { @@ -185,8 +188,12 @@ static int ftp_recieve(ftp_host_info_t *server, FILE *control_stream, } /* Copy the file */ - if (bb_copyfd_size(fd_data, fd_local, filesize) == -1) { - exit(EXIT_FAILURE); + if (filesize != -1) { + if (-1 == bb_copyfd_size(fd_data, fd_local, filesize)) + exit(EXIT_FAILURE); + } else { + if (-1 == bb_copyfd_eof(fd_data, fd_local)) + exit(EXIT_FAILURE); } /* close it all down */ -- cgit v1.2.3-55-g6feb