]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
connection_read_bucket_decrement() has a side-effect that
authorRoger Dingledine <arma@torproject.org>
Wed, 3 Nov 2004 10:18:31 +0000 (10:18 +0000)
committerRoger Dingledine <arma@torproject.org>
Wed, 3 Nov 2004 10:18:31 +0000 (10:18 +0000)
we need to get even if we just read 0 bytes

svn:r2656

src/or/connection.c

index 9cdf4ee984e7c172e1cb9637b89416374c77c8bd..2d8a8f3194c7cb6c95aaad9eba8142676b32e170 100644 (file)
@@ -882,9 +882,15 @@ static int connection_read_to_buf(connection_t *conn) {
 
   if(result > 0 && !is_local_IP(conn->addr)) { /* remember it */
     rep_hist_note_bytes_read(result, time(NULL));
-    connection_read_bucket_decrement(conn, result);
   }
 
+  /* Call even if result is 0, since the global read bucket may
+   * have reached 0 on a different conn, and this guy needs to
+   * know to stop reading. */
+  /* Longer-term, we should separate this out to read_bucket_decrement
+   * and consider_empty_buckets, and just call the second one always. */
+  connection_read_bucket_decrement(conn, result);
+
   return 0;
 }