mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-23 14:40:51 +01:00
r17949@catbus: nickm | 2008-02-06 13:21:12 -0500
Fix bandwidth bucked calculations again, I think. Bugfix on 0.1.2.x. Backport candidate. svn:r13406
This commit is contained in:
parent
a869574c56
commit
6e2946fb5d
2 changed files with 15 additions and 7 deletions
|
@ -47,6 +47,8 @@ Changes in version 0.2.0.19-alpha - 2008-02-??
|
|||
- If an attempt to launch a DNS resolve request over the control
|
||||
port fails because we have overrun the limit on the number of
|
||||
connections, tell the controller that the request has failed.
|
||||
- Avoid using too little bandwidth when Tor skips a few seconds. Bugfix
|
||||
on 0.1.2.x.
|
||||
|
||||
o Code simplifications and refactoring:
|
||||
- Remove some needless generality from cpuworker code, for improved
|
||||
|
|
|
@ -1659,13 +1659,19 @@ connection_bucket_refill_helper(int *bucket, int rate, int burst,
|
|||
int seconds_elapsed, const char *name)
|
||||
{
|
||||
int starting_bucket = *bucket;
|
||||
if (starting_bucket < burst) {
|
||||
int incr = rate*seconds_elapsed;
|
||||
*bucket += incr;
|
||||
if (*bucket > burst || *bucket < starting_bucket) {
|
||||
/* If we overflow the burst, or underflow our starting bucket,
|
||||
* cap the bucket value to burst. */
|
||||
*bucket = burst;
|
||||
if (starting_bucket < burst && seconds_elapsed) {
|
||||
if (((burst - starting_bucket)/seconds_elapsed) < rate) {
|
||||
*bucket = burst; /* We would overflow the bucket; just set it to
|
||||
* the maximum. */
|
||||
} else {
|
||||
int incr = rate*seconds_elapsed;
|
||||
*bucket += incr;
|
||||
if (*bucket > burst || *bucket < starting_bucket) {
|
||||
/* If we overflow the burst, or underflow our starting bucket,
|
||||
* cap the bucket value to burst. */
|
||||
/* XXXX020 this might be redundant now. */
|
||||
*bucket = burst;
|
||||
}
|
||||
}
|
||||
log(LOG_DEBUG, LD_NET,"%s now %d.", name, *bucket);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue