mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03: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
|
proportionally less, since they already have enough load. Patch
|
||||||
from Mike Perry.
|
from Mike Perry.
|
||||||
- Raise the "max believable bandwidth" from 1.5MB/s to 10MB/s. This
|
- 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
|
will allow fast Tor servers to get more attention.
|
||||||
upgrading from an old Tor version, forget our current guards and
|
- When we're upgrading from an old Tor version, forget our current
|
||||||
pick new ones according to the new weightings. The resulting load
|
guards and pick new ones according to the new weightings. These
|
||||||
balancing improvement could raise effective network capacity by
|
three load balancing patches could raise effective network capacity
|
||||||
a factor of four. Thanks to Mike Perry for measurements.
|
by a factor of four. Thanks to Mike Perry for measurements.
|
||||||
|
|
||||||
o Major bugfixes:
|
o Major bugfixes:
|
||||||
- Handle unexpected whitespace better in malformed descriptors. Bug
|
- 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>,
|
* 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
|
* 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.
|
* 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
|
* If <b>for_guard</b>, we're picking a guard node: consider all guard's
|
||||||
* bandwidth equally. Otherwise, weight guards proportionally less.
|
* 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 they claim something huge, don't believe it */
|
||||||
if (this_bw > max_believable_bw) {
|
if (this_bw > max_believable_bw) {
|
||||||
char fp[HEX_DIGEST_LEN+1];
|
char fp[HEX_DIGEST_LEN+1];
|
||||||
if (status) {
|
base16_encode(fp, sizeof(fp), statuses ?
|
||||||
base16_encode(fp, sizeof(fp),
|
status->identity_digest :
|
||||||
status->identity_digest, DIGEST_LEN);
|
router->cache_info.identity_digest,
|
||||||
} else if (router) {
|
DIGEST_LEN);
|
||||||
base16_encode(fp, sizeof(fp),
|
log_fn(LOG_PROTOCOL_WARN, LD_DIR,
|
||||||
router->cache_info.identity_digest, DIGEST_LEN);
|
"Bandwidth %d for router %s (%s) exceeds allowed max %d, capping",
|
||||||
}
|
this_bw, router ? router->nickname : "(null)",
|
||||||
log_notice(LD_DIR,
|
fp, max_believable_bw);
|
||||||
"Bandwidth %d for router %s (%s) exceeds allowed max %d, capping",
|
|
||||||
this_bw, router ? router->nickname : "(null)",
|
|
||||||
status || router ? fp : "0",
|
|
||||||
max_believable_bw);
|
|
||||||
this_bw = max_believable_bw;
|
this_bw = max_believable_bw;
|
||||||
}
|
}
|
||||||
if (is_known) {
|
if (is_known) {
|
||||||
@ -1473,10 +1467,10 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, int for_exit, int for_guard,
|
|||||||
", guard bw = "U64_FORMAT
|
", guard bw = "U64_FORMAT
|
||||||
", nonguard bw = "U64_FORMAT", guard weight = %lf "
|
", nonguard bw = "U64_FORMAT", guard weight = %lf "
|
||||||
"(for guard == %d)",
|
"(for guard == %d)",
|
||||||
U64_PRINTF_ARG(total_bw),
|
U64_PRINTF_ARG(total_bw),
|
||||||
U64_PRINTF_ARG(total_exit_bw), U64_PRINTF_ARG(total_nonexit_bw),
|
U64_PRINTF_ARG(total_exit_bw), U64_PRINTF_ARG(total_nonexit_bw),
|
||||||
exit_weight, for_exit,
|
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);
|
guard_weight, for_guard);
|
||||||
|
|
||||||
/* Almost done: choose a random value from the bandwidth weights. */
|
/* 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));
|
tmp += ((uint64_t)(bandwidths[i] * guard_weight));
|
||||||
else if (is_exit)
|
else if (is_exit)
|
||||||
tmp += ((uint64_t)(bandwidths[i] * exit_weight));
|
tmp += ((uint64_t)(bandwidths[i] * exit_weight));
|
||||||
else
|
else
|
||||||
tmp += bandwidths[i];
|
tmp += bandwidths[i];
|
||||||
|
|
||||||
if (tmp >= rand_bw)
|
if (tmp >= rand_bw)
|
||||||
|
Loading…
Reference in New Issue
Block a user