mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
more cleanups on r11258. looks good now.
svn:r11266
This commit is contained in:
parent
738ecba367
commit
daece599a1
10
ChangeLog
10
ChangeLog
@ -8,11 +8,11 @@ Changes in version 0.2.0.6-alpha - 2007-??-??
|
||||
proportionally less, since they already have enough load. Patch
|
||||
from Mike Perry.
|
||||
- Raise the "max believable bandwidth" from 1.5MB/s to 10MB/s. This
|
||||
will allow fast Tor servers to get more attention. Also, when we're
|
||||
upgrading from an old Tor version, forget our current guards and
|
||||
pick new ones according to the new weightings. The resulting load
|
||||
balancing improvement could raise effective network capacity by
|
||||
a factor of four. Thanks to Mike Perry for measurements.
|
||||
will allow fast Tor servers to get more attention.
|
||||
- When we're upgrading from an old Tor version, forget our current
|
||||
guards and pick new ones according to the new weightings. These
|
||||
three load balancing patches could raise effective network capacity
|
||||
by a factor of four. Thanks to Mike Perry for measurements.
|
||||
|
||||
o Major bugfixes:
|
||||
- Handle unexpected whitespace better in malformed descriptors. Bug
|
||||
|
@ -1287,8 +1287,6 @@ get_max_believable_bandwidth(void)
|
||||
* some in the list because they exit to obscure ports. If not <b>for_exit</b>,
|
||||
* we're picking a non-exit node: weight exit-node's bandwidth less
|
||||
* depending on the smallness of the fraction of Exit-to-total bandwidth.
|
||||
* Beware: this flag is often abused to force uniform selection when
|
||||
* we are not actually choosing exits!
|
||||
*
|
||||
* If <b>for_guard</b>, we're picking a guard node: consider all guard's
|
||||
* bandwidth equally. Otherwise, weight guards proportionally less.
|
||||
@ -1358,18 +1356,14 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, int for_exit, int for_guard,
|
||||
/* if they claim something huge, don't believe it */
|
||||
if (this_bw > max_believable_bw) {
|
||||
char fp[HEX_DIGEST_LEN+1];
|
||||
if (status) {
|
||||
base16_encode(fp, sizeof(fp),
|
||||
status->identity_digest, DIGEST_LEN);
|
||||
} else if (router) {
|
||||
base16_encode(fp, sizeof(fp),
|
||||
router->cache_info.identity_digest, DIGEST_LEN);
|
||||
}
|
||||
log_notice(LD_DIR,
|
||||
"Bandwidth %d for router %s (%s) exceeds allowed max %d, capping",
|
||||
this_bw, router ? router->nickname : "(null)",
|
||||
status || router ? fp : "0",
|
||||
max_believable_bw);
|
||||
base16_encode(fp, sizeof(fp), statuses ?
|
||||
status->identity_digest :
|
||||
router->cache_info.identity_digest,
|
||||
DIGEST_LEN);
|
||||
log_fn(LOG_PROTOCOL_WARN, LD_DIR,
|
||||
"Bandwidth %d for router %s (%s) exceeds allowed max %d, capping",
|
||||
this_bw, router ? router->nickname : "(null)",
|
||||
fp, max_believable_bw);
|
||||
this_bw = max_believable_bw;
|
||||
}
|
||||
if (is_known) {
|
||||
@ -1473,10 +1467,10 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, int for_exit, int for_guard,
|
||||
", guard bw = "U64_FORMAT
|
||||
", nonguard bw = "U64_FORMAT", guard weight = %lf "
|
||||
"(for guard == %d)",
|
||||
U64_PRINTF_ARG(total_bw),
|
||||
U64_PRINTF_ARG(total_exit_bw), U64_PRINTF_ARG(total_nonexit_bw),
|
||||
U64_PRINTF_ARG(total_bw),
|
||||
U64_PRINTF_ARG(total_exit_bw), U64_PRINTF_ARG(total_nonexit_bw),
|
||||
exit_weight, for_exit,
|
||||
U64_PRINTF_ARG(total_guard_bw), U64_PRINTF_ARG(total_nonguard_bw),
|
||||
U64_PRINTF_ARG(total_guard_bw), U64_PRINTF_ARG(total_nonguard_bw),
|
||||
guard_weight, for_guard);
|
||||
|
||||
/* Almost done: choose a random value from the bandwidth weights. */
|
||||
@ -1495,7 +1489,7 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, int for_exit, int for_guard,
|
||||
tmp += ((uint64_t)(bandwidths[i] * guard_weight));
|
||||
else if (is_exit)
|
||||
tmp += ((uint64_t)(bandwidths[i] * exit_weight));
|
||||
else
|
||||
else
|
||||
tmp += bandwidths[i];
|
||||
|
||||
if (tmp >= rand_bw)
|
||||
|
Loading…
Reference in New Issue
Block a user