diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 21:54:47 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 21:54:47 +0400 |
commit | 7039a66b58706457c7423de60556e04545432943 (patch) | |
tree | a512daebc3674c819766664c8ea17d41ef7fef02 /networking/ftpgetput.c | |
parent | 1385899416a4396385ad421ae1f532be7103738a (diff) |
correct largefile support, add comments about it.
Diffstat (limited to 'networking/ftpgetput.c')
-rw-r--r-- | networking/ftpgetput.c | 20 |
1 files changed, 11 insertions, 9 deletions
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; |