mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Applied Jonas Jensen's download rate patch with my additions.
Published in <015b01c09084$ce2d9330$0100000a@bob> and <sxspugq3xai.fsf@florida.arsdigita.de>.
This commit is contained in:
parent
fdc20de365
commit
366b832e3f
@ -1,3 +1,24 @@
|
|||||||
|
2001-02-11 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
|
* ftp.c (ftp_loop_internal): Disable padding.
|
||||||
|
(getftp): Ditto.
|
||||||
|
|
||||||
|
* http.c (http_loop): Disable padding.
|
||||||
|
|
||||||
|
* retr.c (show_progress): Use it to enable padding.
|
||||||
|
|
||||||
|
* retr.c (rate): Optional parameter PAD for padding the rate.
|
||||||
|
|
||||||
|
2001-02-10 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||||
|
|
||||||
|
* retr.c (show_progress): Make sure that the last output line
|
||||||
|
includes progress.
|
||||||
|
|
||||||
|
2001-02-10 Jonas Jensen <bones@huleboer.dk>
|
||||||
|
|
||||||
|
* retr.c (show_progress): Print the download rate along with the
|
||||||
|
percentages.
|
||||||
|
|
||||||
2001-02-10 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
|
2001-02-10 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
|
||||||
|
|
||||||
* ftp.h: Rename enums `command' to `wget_ftp_command' and
|
* ftp.h: Rename enums `command' to `wget_ftp_command' and
|
||||||
|
@ -839,7 +839,7 @@ Error in server response, closing control connection.\n"));
|
|||||||
res = get_contents (dtsock, fp, len, restval, expected_bytes, &con->rbuf, 0);
|
res = get_contents (dtsock, fp, len, restval, expected_bytes, &con->rbuf, 0);
|
||||||
con->dltime = elapsed_time ();
|
con->dltime = elapsed_time ();
|
||||||
tms = time_str (NULL);
|
tms = time_str (NULL);
|
||||||
tmrate = rate (*len - restval, con->dltime);
|
tmrate = rate (*len - restval, con->dltime, 0);
|
||||||
/* Close data connection socket. */
|
/* Close data connection socket. */
|
||||||
closeport (dtsock);
|
closeport (dtsock);
|
||||||
/* Close the local file. */
|
/* Close the local file. */
|
||||||
@ -1042,7 +1042,7 @@ ftp_loop_internal (struct urlinfo *u, struct fileinfo *f, ccon *con)
|
|||||||
err = getftp (u, &len, restval, con);
|
err = getftp (u, &len, restval, con);
|
||||||
/* Time? */
|
/* Time? */
|
||||||
tms = time_str (NULL);
|
tms = time_str (NULL);
|
||||||
tmrate = rate (len - restval, con->dltime);
|
tmrate = rate (len - restval, con->dltime, 0);
|
||||||
|
|
||||||
if (!rbuf_initialized_p (&con->rbuf))
|
if (!rbuf_initialized_p (&con->rbuf))
|
||||||
con->st &= ~DONE_CWD;
|
con->st &= ~DONE_CWD;
|
||||||
|
@ -1596,7 +1596,7 @@ The sizes do not match (local %ld) -- retrieving.\n"), local_size);
|
|||||||
strings within it will no longer be used. */
|
strings within it will no longer be used. */
|
||||||
FREEHSTAT (hstat);
|
FREEHSTAT (hstat);
|
||||||
|
|
||||||
tmrate = rate (hstat.len - hstat.restval, hstat.dltime);
|
tmrate = rate (hstat.len - hstat.restval, hstat.dltime, 0);
|
||||||
|
|
||||||
if (hstat.len == hstat.contlen)
|
if (hstat.len == hstat.contlen)
|
||||||
{
|
{
|
||||||
|
40
src/retr.c
40
src/retr.c
@ -1,5 +1,5 @@
|
|||||||
/* File retrieval.
|
/* File retrieval.
|
||||||
Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of Wget.
|
This file is part of Wget.
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ static void
|
|||||||
print_percentage (long bytes, long expected)
|
print_percentage (long bytes, long expected)
|
||||||
{
|
{
|
||||||
int percentage = (int)(100.0 * bytes / expected);
|
int percentage = (int)(100.0 * bytes / expected);
|
||||||
logprintf (LOG_VERBOSE, " [%3d%%]", percentage);
|
logprintf (LOG_VERBOSE, "%3d%%", percentage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Show the dotted progress report of file loading. Called with
|
/* Show the dotted progress report of file loading. Called with
|
||||||
@ -174,8 +174,9 @@ static int
|
|||||||
show_progress (long res, long expected, enum spflags flags)
|
show_progress (long res, long expected, enum spflags flags)
|
||||||
{
|
{
|
||||||
static long line_bytes;
|
static long line_bytes;
|
||||||
static long offs;
|
static long offs, initial_skip;
|
||||||
static int ndot, nrow;
|
static int ndot, nrow;
|
||||||
|
static long last_timer, time_offset;
|
||||||
int any_output = 0;
|
int any_output = 0;
|
||||||
|
|
||||||
if (flags == SP_FINISH)
|
if (flags == SP_FINISH)
|
||||||
@ -185,6 +186,7 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
int dot = ndot;
|
int dot = ndot;
|
||||||
char *tmpstr = (char *)alloca (2 * opt.dots_in_line + 1);
|
char *tmpstr = (char *)alloca (2 * opt.dots_in_line + 1);
|
||||||
char *tmpp = tmpstr;
|
char *tmpp = tmpstr;
|
||||||
|
time_offset = elapsed_time () - last_timer;
|
||||||
for (; dot < opt.dots_in_line; dot++)
|
for (; dot < opt.dots_in_line; dot++)
|
||||||
{
|
{
|
||||||
if (!(dot % opt.dot_spacing))
|
if (!(dot % opt.dot_spacing))
|
||||||
@ -195,6 +197,9 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
logputs (LOG_VERBOSE, tmpstr);
|
logputs (LOG_VERBOSE, tmpstr);
|
||||||
print_percentage (nrow * line_bytes + ndot * opt.dot_bytes + offs,
|
print_percentage (nrow * line_bytes + ndot * opt.dot_bytes + offs,
|
||||||
expected);
|
expected);
|
||||||
|
logprintf (LOG_VERBOSE, " @%s",
|
||||||
|
rate (ndot * opt.dot_bytes + offs - initial_skip,
|
||||||
|
time_offset, 1));
|
||||||
}
|
}
|
||||||
logputs (LOG_VERBOSE, "\n\n");
|
logputs (LOG_VERBOSE, "\n\n");
|
||||||
return 0;
|
return 0;
|
||||||
@ -211,6 +216,9 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
offs = 0L;
|
offs = 0L;
|
||||||
ndot = nrow = 0;
|
ndot = nrow = 0;
|
||||||
line_bytes = (long)opt.dots_in_line * opt.dot_bytes;
|
line_bytes = (long)opt.dots_in_line * opt.dot_bytes;
|
||||||
|
last_timer = elapsed_time ();
|
||||||
|
time_offset = 0;
|
||||||
|
initial_skip = res;
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
if (res >= line_bytes)
|
if (res >= line_bytes)
|
||||||
@ -223,7 +231,7 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
ndot = 0;
|
ndot = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logprintf (LOG_VERBOSE, "\n%5ldK ->", nrow * line_bytes / 1024);
|
logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
|
||||||
}
|
}
|
||||||
/* Offset gets incremented by current value. */
|
/* Offset gets incremented by current value. */
|
||||||
offs += res;
|
offs += res;
|
||||||
@ -238,11 +246,19 @@ show_progress (long res, long expected, enum spflags flags)
|
|||||||
++ndot;
|
++ndot;
|
||||||
if (ndot == opt.dots_in_line)
|
if (ndot == opt.dots_in_line)
|
||||||
{
|
{
|
||||||
|
time_offset = elapsed_time () - last_timer;
|
||||||
|
last_timer += time_offset;
|
||||||
|
|
||||||
ndot = 0;
|
ndot = 0;
|
||||||
++nrow;
|
++nrow;
|
||||||
if (expected)
|
if (expected)
|
||||||
|
{
|
||||||
print_percentage (nrow * line_bytes, expected);
|
print_percentage (nrow * line_bytes, expected);
|
||||||
logprintf (LOG_VERBOSE, "\n%5ldK ->", nrow * line_bytes / 1024);
|
logprintf (LOG_VERBOSE, " @%s",
|
||||||
|
rate (line_bytes - initial_skip, time_offset, 1));
|
||||||
|
}
|
||||||
|
initial_skip = 0;
|
||||||
|
logprintf (LOG_VERBOSE, "\n%5ldK", nrow * line_bytes / 1024);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Reenable flushing. */
|
/* Reenable flushing. */
|
||||||
@ -310,9 +326,12 @@ elapsed_time (void)
|
|||||||
|
|
||||||
/* Print out the appropriate download rate. Appropriate means that if
|
/* Print out the appropriate download rate. Appropriate means that if
|
||||||
rate is > 1024 bytes per second, kilobytes are used, and if rate >
|
rate is > 1024 bytes per second, kilobytes are used, and if rate >
|
||||||
1024 * 1024 bps, megabytes are used. */
|
1024 * 1024 bps, megabytes are used.
|
||||||
|
|
||||||
|
If PAD is non-zero, strings will be padded to the width of 7
|
||||||
|
characters (xxxx.xx). */
|
||||||
char *
|
char *
|
||||||
rate (long bytes, long msecs)
|
rate (long bytes, long msecs, int pad)
|
||||||
{
|
{
|
||||||
static char res[15];
|
static char res[15];
|
||||||
double dlrate;
|
double dlrate;
|
||||||
@ -320,13 +339,12 @@ rate (long bytes, long msecs)
|
|||||||
if (!msecs)
|
if (!msecs)
|
||||||
++msecs;
|
++msecs;
|
||||||
dlrate = (double)1000 * bytes / msecs;
|
dlrate = (double)1000 * bytes / msecs;
|
||||||
/* #### Should these strings be translatable? */
|
|
||||||
if (dlrate < 1024.0)
|
if (dlrate < 1024.0)
|
||||||
sprintf (res, "%.2f B/s", dlrate);
|
sprintf (res, pad ? "%7.2f B/s" : "%.2f B/s", dlrate);
|
||||||
else if (dlrate < 1024.0 * 1024.0)
|
else if (dlrate < 1024.0 * 1024.0)
|
||||||
sprintf (res, "%.2f KB/s", dlrate / 1024.0);
|
sprintf (res, pad ? "%7.2f KB/s" : "%.2f KB/s", dlrate / 1024.0);
|
||||||
else
|
else
|
||||||
sprintf (res, "%.2f MB/s", dlrate / (1024.0 * 1024.0));
|
sprintf (res, pad ? "%7.2f MB/s" : "%.2f MB/s", dlrate / (1024.0 * 1024.0));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ uerr_t retrieve_from_file PARAMS ((const char *, int, int *));
|
|||||||
|
|
||||||
void reset_timer PARAMS ((void));
|
void reset_timer PARAMS ((void));
|
||||||
long elapsed_time PARAMS ((void));
|
long elapsed_time PARAMS ((void));
|
||||||
char *rate PARAMS ((long, long));
|
char *rate PARAMS ((long, long, int));
|
||||||
|
|
||||||
void printwhat PARAMS ((int, int));
|
void printwhat PARAMS ((int, int));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user