Browse Source

Correctly report written bytes on linked connections.

Karsten Loesing 15 years ago
parent
commit
58b6195455
2 changed files with 10 additions and 2 deletions
  1. 4 0
      changes/bugfoundin1790
  2. 6 2
      src/or/connection.c

+ 4 - 0
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.
+

+ 6 - 2
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);