mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 07:07:52 +01:00
bugfix: we were ignoring the IS_FAST flag in the directory
status, meaning we were willing to pick trivial-bandwidth nodes for "fast" connections. svn:r5992
This commit is contained in:
parent
dba155ecff
commit
b7781ea208
1 changed files with 6 additions and 5 deletions
|
@ -726,15 +726,16 @@ router_is_unreliable(routerinfo_t *router, int need_uptime,
|
||||||
/** Remove from routerlist <b>sl</b> all routers that are not
|
/** Remove from routerlist <b>sl</b> all routers that are not
|
||||||
* sufficiently stable. */
|
* sufficiently stable. */
|
||||||
static void
|
static void
|
||||||
routerlist_sl_remove_unreliable_routers(smartlist_t *sl,
|
routerlist_sl_remove_unreliable_routers(smartlist_t *sl, int need_uptime,
|
||||||
int need_uptime, int need_guard)
|
int need_capacity, int need_guard)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
routerinfo_t *router;
|
routerinfo_t *router;
|
||||||
|
|
||||||
for (i = 0; i < smartlist_len(sl); ++i) {
|
for (i = 0; i < smartlist_len(sl); ++i) {
|
||||||
router = smartlist_get(sl, i);
|
router = smartlist_get(sl, i);
|
||||||
if (router_is_unreliable(router, need_uptime, 0, need_guard)) {
|
if (router_is_unreliable(router, need_uptime,
|
||||||
|
need_capacity, need_guard)) {
|
||||||
// log(LOG_DEBUG, "Router '%s' has insufficient uptime; deleting.",
|
// log(LOG_DEBUG, "Router '%s' has insufficient uptime; deleting.",
|
||||||
// router->nickname);
|
// router->nickname);
|
||||||
smartlist_del(sl, i--);
|
smartlist_del(sl, i--);
|
||||||
|
@ -838,8 +839,8 @@ router_choose_random_node(const char *preferred,
|
||||||
smartlist_subtract(sl,excludednodes);
|
smartlist_subtract(sl,excludednodes);
|
||||||
if (excludedsmartlist)
|
if (excludedsmartlist)
|
||||||
smartlist_subtract(sl,excludedsmartlist);
|
smartlist_subtract(sl,excludedsmartlist);
|
||||||
if (need_uptime || need_guard)
|
routerlist_sl_remove_unreliable_routers(sl, need_uptime,
|
||||||
routerlist_sl_remove_unreliable_routers(sl, need_uptime, need_guard);
|
need_capacity, need_guard);
|
||||||
if (need_capacity)
|
if (need_capacity)
|
||||||
choice = routerlist_sl_choose_by_bandwidth(sl);
|
choice = routerlist_sl_choose_by_bandwidth(sl);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Reference in a new issue