Fix a few trivial bugs from the nodelist merge

This commit is contained in:
Nick Mathewson 2010-10-13 21:54:09 -04:00
parent 3af12a5557
commit 376939c9ac

View File

@ -1164,7 +1164,7 @@ router_pick_directory_server_impl(authority_type_t type, int flags)
smartlist_free(trusted_tunnel);
smartlist_free(overloaded_direct);
smartlist_free(overloaded_tunnel);
return result->rs;
return result ? result->rs : NULL;
}
/** Choose randomly from among the trusted dirservers that are up. Flags
@ -1389,7 +1389,7 @@ routerlist_add_nodes_in_family(smartlist_t *sl, const routerinfo_t *router)
memcpy(fake_node.identity, router->cache_info.identity_digest, DIGEST_LEN);
node = &fake_node;
}
nodelist_add_node_family(sl, &fake_node);
nodelist_add_node_family(sl, node);
}
/** Return true iff <b>node</b> is named by some nickname in <b>lst</b>. */
@ -1883,7 +1883,6 @@ smartlist_choose_node_by_bandwidth(smartlist_t *sl,
bandwidth_weight_rule_t rule)
{
unsigned i;
const routerstatus_t *status=NULL;
int32_t *bandwidths;
int is_exit;
int is_guard;
@ -1938,12 +1937,12 @@ smartlist_choose_node_by_bandwidth(smartlist_t *sl,
is_guard = node->is_possible_guard;
if (node->rs) {
if (node->rs->has_bandwidth) {
this_bw = kb_to_bytes(status->bandwidth);
this_bw = kb_to_bytes(node->rs->bandwidth);
} 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 = node->rs->is_fast ? 1 : 0;
flags |= is_exit ? 2 : 0;
flags |= is_guard ? 4 : 0;
}