From 7039a66b58706457c7423de60556e04545432943 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sun, 8 Oct 2006 17:54:47 +0000 Subject: correct largefile support, add comments about it. --- networking/ftpgetput.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'networking/ftpgetput.c') diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c index 902528f93..5d13e289b 100644 --- a/networking/ftpgetput.c +++ b/networking/ftpgetput.c @@ -104,9 +104,11 @@ static FILE *ftp_login(ftp_host_info_t *server) } #if !ENABLE_FTPGET -#define ftp_receive 0 +int ftp_receive(ftp_host_info_t *server, FILE *control_stream, + const char *local_path, char *server_path); #else -static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, +static +int ftp_receive(ftp_host_info_t *server, FILE *control_stream, const char *local_path, char *server_path) { char buf[512]; @@ -122,10 +124,8 @@ static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, fd_data = xconnect_ftpdata(server, buf); if (ftpcmd("SIZE ", server_path, control_stream, buf) == 213) { - unsigned long value=filesize; - if (safe_strtoul(buf + 4, &value)) + if (SAFE_STRTOOFF(buf + 4, &filesize)) bb_error_msg_and_die("SIZE error: %s", buf + 4); - filesize = value; } else { filesize = -1; do_continue = 0; @@ -139,7 +139,7 @@ static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, if (do_continue) { struct stat sbuf; if (lstat(local_path, &sbuf) < 0) { - bb_perror_msg_and_die("fstat()"); + bb_perror_msg_and_die("lstat"); } if (sbuf.st_size > 0) { beg_range = sbuf.st_size; @@ -149,7 +149,7 @@ static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, } if (do_continue) { - sprintf(buf, "REST %ld", (long)beg_range); + sprintf(buf, "REST "OFF_FMT, beg_range); if (ftpcmd(buf, NULL, control_stream, buf) != 350) { do_continue = 0; } else { @@ -191,9 +191,11 @@ static int ftp_receive(ftp_host_info_t *server, FILE *control_stream, #endif #if !ENABLE_FTPPUT -#define ftp_send 0 +int ftp_send(ftp_host_info_t *server, FILE *control_stream, + const char *server_path, char *local_path); #else -static int ftp_send(ftp_host_info_t *server, FILE *control_stream, +static +int ftp_send(ftp_host_info_t *server, FILE *control_stream, const char *server_path, char *local_path) { struct stat sbuf; -- cgit v1.2.3