From b169d038fe2d3cc01979dd8ed6333504bbcd02f9 Mon Sep 17 00:00:00 2001
From: Richard Nyberg <rnyberg@murmeldjur.se>
Date: Sat, 16 Sep 2006 10:50:00 +0000
Subject: [PATCH] Return rates in bytes/s instead of time factor * bytes/s.
 Clients should not need to know about the sample time.

---
 btpd/cli_if.c | 6 ++++--
 btpd/net.c    | 2 --
 btpd/net.h    | 2 ++
 cli/stat.c    | 4 ++--
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/btpd/cli_if.c b/btpd/cli_if.c
index 56b77fd..ef82d07 100644
--- a/btpd/cli_if.c
+++ b/btpd/cli_if.c
@@ -100,13 +100,15 @@ write_ans(struct io_buffer *iob, struct tlib *tl, enum ipc_tval val)
         if (tl->tp == NULL)
             buf_print(iob, "i%dei%de", IPC_TYPE_ERR, IPC_ETINACTIVE);
         else
-            buf_print(iob, "i%dei%lue", IPC_TYPE_NUM, tl->tp->net->rate_dwn);
+            buf_print(iob, "i%dei%lue", IPC_TYPE_NUM,
+                tl->tp->net->rate_dwn / RATEHISTORY);
         return;
     case IPC_TVAL_RATEUP:
         if (tl->tp == NULL)
             buf_print(iob, "i%dei%de", IPC_TYPE_ERR, IPC_ETINACTIVE);
         else
-            buf_print(iob, "i%dei%lue", IPC_TYPE_NUM, tl->tp->net->rate_up);
+            buf_print(iob, "i%dei%lue", IPC_TYPE_NUM,
+                tl->tp->net->rate_up / RATEHISTORY);
         return;
     case IPC_TVAL_SESSDWN:
         if (tl->tp == NULL)
diff --git a/btpd/net.c b/btpd/net.c
index 912965c..c6af6ba 100644
--- a/btpd/net.c
+++ b/btpd/net.c
@@ -523,8 +523,6 @@ net_connection_cb(int sd, short type, void *arg)
     btpd_log(BTPD_L_CONN, "got connection.\n");
 }
 
-#define RATEHISTORY 20
-
 static unsigned long
 compute_rate_sub(unsigned long rate)
 {
diff --git a/btpd/net.h b/btpd/net.h
index bbc3ceb..e162841 100644
--- a/btpd/net.h
+++ b/btpd/net.h
@@ -11,6 +11,8 @@
 #define MSG_PIECE       7
 #define MSG_CANCEL      8
 
+#define RATEHISTORY 20
+
 extern struct peer_tq net_unattached;
 extern struct peer_tq net_bw_readq;
 extern struct peer_tq net_bw_writeq;
diff --git a/cli/stat.c b/cli/stat.c
index 96f85c7..0ed75bf 100644
--- a/cli/stat.c
+++ b/cli/stat.c
@@ -88,9 +88,9 @@ print_stat(struct btstat *st)
 {
     print_percent(st->content_got, st->content_size);
     print_size(st->downloaded);
-    print_rate(st->rate_down / 20);
+    print_rate(st->rate_down);
     print_size(st->uploaded);
-    print_rate(st->rate_up / 20);
+    print_rate(st->rate_up);
     printf("%5u ", st->peers);
     print_percent(st->pieces_seen, st->torrent_pieces);
     if (st->tr_errors > 0)