diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 17:54:47 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 17:54:47 +0000 |
commit | 7039a66b58706457c7423de60556e04545432943 (patch) | |
tree | a512daebc3674c819766664c8ea17d41ef7fef02 /networking/wget.c | |
parent | 1385899416a4396385ad421ae1f532be7103738a (diff) | |
download | busybox-w32-7039a66b58706457c7423de60556e04545432943.tar.gz busybox-w32-7039a66b58706457c7423de60556e04545432943.tar.bz2 busybox-w32-7039a66b58706457c7423de60556e04545432943.zip |
correct largefile support, add comments about it.
Diffstat (limited to 'networking/wget.c')
-rw-r--r-- | networking/wget.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/networking/wget.c b/networking/wget.c index e7b19f2ef..74feccc36 100644 --- a/networking/wget.c +++ b/networking/wget.c | |||
@@ -29,9 +29,9 @@ static char *gethdr(char *buf, size_t bufsiz, FILE *fp, int *istrunc); | |||
29 | static int ftpcmd(char *s1, char *s2, FILE *fp, char *buf); | 29 | static int ftpcmd(char *s1, char *s2, FILE *fp, char *buf); |
30 | 30 | ||
31 | /* Globals (can be accessed from signal handlers */ | 31 | /* Globals (can be accessed from signal handlers */ |
32 | static FILEOFF_TYPE content_len; /* Content-length of the file */ | 32 | static off_t content_len; /* Content-length of the file */ |
33 | static FILEOFF_TYPE beg_range; /* Range at which continue begins */ | 33 | static off_t beg_range; /* Range at which continue begins */ |
34 | static FILEOFF_TYPE transferred; /* Number of bytes transferred so far */ | 34 | static off_t transferred; /* Number of bytes transferred so far */ |
35 | static int chunked; /* chunked transfer encoding */ | 35 | static int chunked; /* chunked transfer encoding */ |
36 | #ifdef CONFIG_FEATURE_WGET_STATUSBAR | 36 | #ifdef CONFIG_FEATURE_WGET_STATUSBAR |
37 | static void progressmeter(int flag); | 37 | static void progressmeter(int flag); |
@@ -215,10 +215,10 @@ int wget_main(int argc, char **argv) | |||
215 | opt |= WGET_OPT_QUIET; | 215 | opt |= WGET_OPT_QUIET; |
216 | opt &= ~WGET_OPT_CONTINUE; | 216 | opt &= ~WGET_OPT_CONTINUE; |
217 | } else if (opt & WGET_OPT_CONTINUE) { | 217 | } else if (opt & WGET_OPT_CONTINUE) { |
218 | output_fd = open(fname_out, O_WRONLY|O_LARGEFILE); | 218 | output_fd = open(fname_out, O_WRONLY); |
219 | if (output_fd >= 0) { | 219 | if (output_fd >= 0) { |
220 | beg_range = LSEEK(output_fd, 0, SEEK_END); | 220 | beg_range = lseek(output_fd, 0, SEEK_END); |
221 | if (beg_range == (FILEOFF_TYPE)-1) | 221 | if (beg_range == (off_t)-1) |
222 | bb_perror_msg_and_die("lseek"); | 222 | bb_perror_msg_and_die("lseek"); |
223 | } | 223 | } |
224 | /* File doesn't exist. We do not create file here yet. | 224 | /* File doesn't exist. We do not create file here yet. |
@@ -282,7 +282,7 @@ int wget_main(int argc, char **argv) | |||
282 | #endif | 282 | #endif |
283 | 283 | ||
284 | if (beg_range) | 284 | if (beg_range) |
285 | fprintf(sfp, "Range: bytes="FILEOFF_FMT"-\r\n", beg_range); | 285 | fprintf(sfp, "Range: bytes="OFF_FMT"-\r\n", beg_range); |
286 | if(extra_headers_left < sizeof(extra_headers)) | 286 | if(extra_headers_left < sizeof(extra_headers)) |
287 | fputs(extra_headers,sfp); | 287 | fputs(extra_headers,sfp); |
288 | fprintf(sfp,"Connection: close\r\n\r\n"); | 288 | fprintf(sfp,"Connection: close\r\n\r\n"); |
@@ -413,7 +413,7 @@ read_response: | |||
413 | dfp = open_socket(&s_in); | 413 | dfp = open_socket(&s_in); |
414 | 414 | ||
415 | if (beg_range) { | 415 | if (beg_range) { |
416 | sprintf(buf, "REST "FILEOFF_FMT, beg_range); | 416 | sprintf(buf, "REST "OFF_FMT, beg_range); |
417 | if (ftpcmd(buf, NULL, sfp, buf) == 350) | 417 | if (ftpcmd(buf, NULL, sfp, buf) == 350) |
418 | content_len -= beg_range; | 418 | content_len -= beg_range; |
419 | } | 419 | } |
@@ -435,7 +435,7 @@ read_response: | |||
435 | /* Do it before progressmeter (want to have nice error message) */ | 435 | /* Do it before progressmeter (want to have nice error message) */ |
436 | if (output_fd < 0) | 436 | if (output_fd < 0) |
437 | output_fd = xopen3(fname_out, | 437 | output_fd = xopen3(fname_out, |
438 | O_WRONLY|O_CREAT|O_EXCL|O_TRUNC|O_LARGEFILE, 0666); | 438 | O_WRONLY|O_CREAT|O_EXCL|O_TRUNC, 0666); |
439 | 439 | ||
440 | if (!(opt & WGET_OPT_QUIET)) | 440 | if (!(opt & WGET_OPT_QUIET)) |
441 | progressmeter(-1); | 441 | progressmeter(-1); |
@@ -685,10 +685,10 @@ static void | |||
685 | progressmeter(int flag) | 685 | progressmeter(int flag) |
686 | { | 686 | { |
687 | static struct timeval lastupdate; | 687 | static struct timeval lastupdate; |
688 | static FILEOFF_TYPE lastsize, totalsize; | 688 | static off_t lastsize, totalsize; |
689 | 689 | ||
690 | struct timeval now, td, tvwait; | 690 | struct timeval now, td, tvwait; |
691 | FILEOFF_TYPE abbrevsize; | 691 | off_t abbrevsize; |
692 | int elapsed, ratio, barlength, i; | 692 | int elapsed, ratio, barlength, i; |
693 | char buf[256]; | 693 | char buf[256]; |
694 | 694 | ||
@@ -739,7 +739,7 @@ progressmeter(int flag) | |||
739 | if (tvwait.tv_sec >= STALLTIME) { | 739 | if (tvwait.tv_sec >= STALLTIME) { |
740 | fprintf(stderr, " - stalled -"); | 740 | fprintf(stderr, " - stalled -"); |
741 | } else { | 741 | } else { |
742 | FILEOFF_TYPE to_download = totalsize - beg_range; | 742 | off_t to_download = totalsize - beg_range; |
743 | if (transferred <= 0 || elapsed <= 0 || transferred > to_download || chunked) { | 743 | if (transferred <= 0 || elapsed <= 0 || transferred > to_download || chunked) { |
744 | fprintf(stderr, "--:--:-- ETA"); | 744 | fprintf(stderr, "--:--:-- ETA"); |
745 | } else { | 745 | } else { |