summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarsten Loesing <karsten.loesing@gmx.net>2010-08-09 15:25:09 +0200
committerKarsten Loesing <karsten.loesing@gmx.net>2010-08-18 13:54:41 +0200
commit58b6195455bcb173d260558e84e642c52d344c2f (patch)
treed06fd4a9a852ec4cee1a90c6103adc9223077426
parentdb94b7f46ef02d5a1de132a5b746b350f3d066b7 (diff)
downloadtor-58b6195455bcb173d260558e84e642c52d344c2f.tar.gz
tor-58b6195455bcb173d260558e84e642c52d344c2f.zip
Correctly report written bytes on linked connections.
-rw-r--r--changes/bugfoundin17904
-rw-r--r--src/or/connection.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/bugfoundin1790 b/changes/bugfoundin1790
new file mode 100644
index 0000000000..0a18fe181d
--- /dev/null
+++ b/changes/bugfoundin1790
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - Correctly report written bytes on linked connections. Found while
+ implementing 1790. Bugfix on 0.2.2.4-alpha.
+
diff --git a/src/or/connection.c b/src/or/connection.c
index 5438cf7d0d..99ce7fffef 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -2409,8 +2409,12 @@ loop_again:
connection_t *linked = conn->linked_conn;
if (n_read) {
- /* Probably a no-op, but hey. */
- connection_buckets_decrement(linked, approx_time(), n_read, 0);
+ /* Probably a no-op, since linked conns typically don't count for
+ * bandwidth rate limiting. But do it anyway so we can keep stats
+ * accurately. Note that since we read the bytes from conn, and
+ * we're writing the bytes onto the linked connection, we count
+ * these as <i>written</i> bytes. */
+ connection_buckets_decrement(linked, approx_time(), 0, n_read);
if (connection_flushed_some(linked) < 0)
connection_mark_for_close(linked);