Date: Sun, 11 Nov 2001 22:25:26 +0100 From: Jerry Eriksson <eip@coredump.cx> To: freebsd-net@freebsd.org Subject: ftp(1) patch Message-ID: <20011111222526.A895@coredump.cx>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Here's a quick patch for ftp(1) to show
the transfer rate while downloading files.
/ Jerry
[-- Attachment #2 --]
--- /usr/src/usr.bin/ftp/util.c Fri Apr 6 13:34:03 2001
+++ ftp/util.c Fri Nov 9 18:07:49 2001
@@ -602,9 +602,9 @@ progressmeter(flag)
static struct timeval lastupdate;
static off_t lastsize;
struct timeval now, td, wait;
- off_t cursize, abbrevsize;
+ off_t cursize, abbrevsize, bs;
double elapsed;
- int ratio, barlength, i, len;
+ int ratio, barlength, i, len, meg;
off_t remaining;
char buf[256];
@@ -625,7 +625,7 @@ progressmeter(flag)
ratio = MIN(ratio, 100);
len += snprintf(buf + len, sizeof(buf) - len, "\r%3d%% ", ratio);
- barlength = ttywidth - 30;
+ barlength = ttywidth - 43;
if (barlength > 0) {
i = barlength * ratio / 100;
len += snprintf(buf + len, sizeof(buf) - len,
@@ -668,6 +668,12 @@ progressmeter(flag)
} else {
remaining =
((filesize - restart_point) / (bytes / elapsed) - elapsed);
+ bs = bytes / (elapsed == 0.0 ? 1 : elapsed);
+ meg = 0;
+ if (bs > (1024 * 1024))
+ meg = 1;
+ len += snprintf(buf + len, sizeof(buf) - len,
+ " (%.2f %sB/s)", bs / (1024.0 * (meg ? 1024.0 : 1.0)), meg ? "M" : "K");
if (remaining >= 100 * SECSPERHOUR)
len += snprintf(buf + len, sizeof(buf) - len,
" --:-- ETA");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011111222526.A895>
