what the heck is wrong with this little piece of code?

why can none of us get it right?
it looks so simple.


svn:r5521
This commit is contained in:
Roger Dingledine 2005-12-07 04:43:39 +00:00
parent b0ffa34219
commit 4902ece698
2 changed files with 7 additions and 4 deletions

View File

@ -1431,9 +1431,9 @@ choose_good_middle_server(uint8_t purpose,
} }
/** Pick a good entry server for the circuit to be built according to /** Pick a good entry server for the circuit to be built according to
* <b>state</b>. Don't reuse a chosen exit (if any), don't use this router * <b>state</b>. Don't reuse a chosen exit (if any), don't use this
* (if we're an OR), and respect firewall settings; if we're using helper nodes, * router (if we're an OR), and respect firewall settings; if we're
* return one. * using helper nodes, return one.
* *
* If <b>state</b> is NULL, we're choosing entries to serve as helper nodes, * If <b>state</b> is NULL, we're choosing entries to serve as helper nodes,
* not for any particular circuit. * not for any particular circuit.
@ -1468,6 +1468,8 @@ choose_good_entry_server(cpath_build_state_t *state)
smartlist_add(excluded, r); smartlist_add(excluded, r);
} }
} }
// XXX we should exclude busy exit nodes here, too,
// but only if there are enough other nodes available.
choice = router_choose_random_node(options->EntryNodes, options->ExcludeNodes, choice = router_choose_random_node(options->EntryNodes, options->ExcludeNodes,
excluded, state ? state->need_uptime : 1, excluded, state ? state->need_uptime : 1,
state ? state->need_capacity : 0, state ? state->need_capacity : 0,

View File

@ -1005,8 +1005,9 @@ connection_ap_handshake_process_socks(connection_t *conn)
} }
} else { } else {
struct in_addr in; struct in_addr in;
routerinfo_t *r = router_get_by_nickname(conn->chosen_exit_name, 1); routerinfo_t *r;
conn->chosen_exit_name = tor_strdup(socks->address); conn->chosen_exit_name = tor_strdup(socks->address);
r = router_get_by_nickname(conn->chosen_exit_name, 1);
*socks->address = 0; *socks->address = 0;
if (r) { if (r) {
/* XXXX Should this use server->address instead? */ /* XXXX Should this use server->address instead? */