diff options
author | Roger Dingledine <arma@torproject.org> | 2006-06-07 09:18:53 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2006-06-07 09:18:53 +0000 |
commit | 91bd12c20df2c24d4248f244dbebb2bedee76599 (patch) | |
tree | e48343180e7f4e7c79cd7a91e118c41ba1be56d7 /src/or/connection.c | |
parent | 741b11df454f4c7d77aacf58f05ee9a6af884474 (diff) | |
download | tor-91bd12c20df2c24d4248f244dbebb2bedee76599.tar tor-91bd12c20df2c24d4248f244dbebb2bedee76599.tar.gz |
re-enable per-connection rate limiting. get rid of the "OP bandwidth"
concept. lay groundwork for "bandwidth classes" -- separate global
buckets that apply depending on what sort of conn it is.
svn:r6563
Diffstat (limited to 'src/or/connection.c')
-rw-r--r-- | src/or/connection.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index 6a89891dc..6e2ab884a 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1043,10 +1043,8 @@ static void connection_read_bucket_decrement(connection_t *conn, int num_read) { global_read_bucket -= num_read; - //tor_assert(global_read_bucket >= 0); if (connection_speaks_cells(conn) && conn->state == OR_CONN_STATE_OPEN) { conn->receiver_bucket -= num_read; - //tor_assert(conn->receiver_bucket >= 0); } } @@ -1071,8 +1069,7 @@ connection_consider_empty_buckets(connection_t *conn) } } -/** Initialize the global read bucket to options->BandwidthBurst, - * and current_time to the current time. */ +/** Initialize the global read bucket to options->BandwidthBurst. */ void connection_bucket_init(void) { @@ -1110,7 +1107,9 @@ connection_bucket_refill(struct timeval *now) conn = carray[i]; if (connection_receiver_bucket_should_increase(conn)) { - conn->receiver_bucket = conn->bandwidth; + conn->receiver_bucket += conn->bandwidthrate; + if (conn->receiver_bucket > conn->bandwidthburst) + conn->receiver_bucket = conn->bandwidthburst; //log_fn(LOG_DEBUG,"Receiver bucket %d now %d.", i, // conn->receiver_bucket); } @@ -1147,7 +1146,7 @@ connection_receiver_bucket_should_increase(connection_t *conn) if (conn->state != OR_CONN_STATE_OPEN) return 0; /* only open connections play the rate limiting game */ - if (conn->receiver_bucket >= conn->bandwidth) + if (conn->receiver_bucket >= conn->bandwidthburst) return 0; return 1; |