mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Merge commit 'origin/maint-0.2.1'
This commit is contained in:
@@ -44,6 +44,13 @@ Changes in version 0.2.1.17-?? - 2009-??-??
|
||||
- Serve the DirPortFrontPage page even when we have been approaching
|
||||
our quotas recently. Fixes bug 1013; bugfix on 0.2.1.8-alpha.
|
||||
|
||||
o Major features:
|
||||
- Clients now use the bandwidth values in the consensus, rather than
|
||||
the bandwidth values in each relay descriptor. This approach opens
|
||||
the door to more accurate bandwidth estimates once the directory
|
||||
authorities start doing active measurements. Implements more of
|
||||
proposal 141.
|
||||
|
||||
|
||||
Changes in version 0.2.1.16-rc - 2009-06-20
|
||||
o Security fixes:
|
||||
|
||||
+18
-4
@@ -1591,28 +1591,42 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, bandwidth_weight_rule_t rule,
|
||||
int32_t flags = 0;
|
||||
uint32_t this_bw = 0;
|
||||
if (statuses) {
|
||||
/* need to extract router info */
|
||||
status = smartlist_get(sl, i);
|
||||
if (router_digest_is_me(status->identity_digest))
|
||||
me_idx = i;
|
||||
router = router_get_by_digest(status->identity_digest);
|
||||
is_exit = status->is_exit;
|
||||
is_guard = status->is_possible_guard;
|
||||
if (router) {
|
||||
this_bw = router_get_advertised_bandwidth(router);
|
||||
if (status->has_bandwidth) {
|
||||
this_bw = status->bandwidth*1000;
|
||||
} else { /* guess */
|
||||
/* XXX022 once consensuses always list bandwidths, we can take
|
||||
* this guessing business out. -RD */
|
||||
is_known = 0;
|
||||
flags = status->is_fast ? 1 : 0;
|
||||
flags |= is_exit ? 2 : 0;
|
||||
flags |= is_guard ? 4 : 0;
|
||||
}
|
||||
} else {
|
||||
routerstatus_t *rs;
|
||||
router = smartlist_get(sl, i);
|
||||
rs = router_get_consensus_status_by_id(
|
||||
router->cache_info.identity_digest);
|
||||
if (router_digest_is_me(router->cache_info.identity_digest))
|
||||
me_idx = i;
|
||||
is_exit = router->is_exit;
|
||||
is_guard = router->is_possible_guard;
|
||||
this_bw = router_get_advertised_bandwidth(router);
|
||||
if (rs && rs->has_bandwidth) {
|
||||
this_bw = rs->bandwidth*1000;
|
||||
} else if (rs) { /* guess; don't trust the descriptor */
|
||||
/* XXX022 once consensuses always list bandwidths, we can take
|
||||
* this guessing business out. -RD */
|
||||
is_known = 0;
|
||||
flags = router->is_fast ? 1 : 0;
|
||||
flags |= is_exit ? 2 : 0;
|
||||
flags |= is_guard ? 4 : 0;
|
||||
} else /* bridge or other descriptor not in our consensus */
|
||||
this_bw = router_get_advertised_bandwidth(router);
|
||||
}
|
||||
if (is_exit)
|
||||
bitarray_set(exit_bits, i);
|
||||
|
||||
Reference in New Issue
Block a user