summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2005-12-07 04:43:39 +0000
committerRoger Dingledine <arma@torproject.org>2005-12-07 04:43:39 +0000
commit4902ece6989b765f6ab0238168cfb0091ceb0bd1 (patch)
treeebfc08eb4a7ee143e2668cb96243eaa3c7143c05
parentb0ffa34219f7899d60b3f8a41c9674b1d3a52fe9 (diff)
downloadtor-4902ece6989b765f6ab0238168cfb0091ceb0bd1.tar.gz
tor-4902ece6989b765f6ab0238168cfb0091ceb0bd1.zip
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
-rw-r--r--src/or/circuitbuild.c8
-rw-r--r--src/or/connection_edge.c3
2 files changed, 7 insertions, 4 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index f542804d20..0acc465714 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1431,9 +1431,9 @@ choose_good_middle_server(uint8_t purpose,
}
/** 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
- * (if we're an OR), and respect firewall settings; if we're using helper nodes,
- * return one.
+ * <b>state</b>. Don't reuse a chosen exit (if any), don't use this
+ * router (if we're an OR), and respect firewall settings; if we're
+ * using helper nodes, return one.
*
* If <b>state</b> is NULL, we're choosing entries to serve as helper nodes,
* not for any particular circuit.
@@ -1468,6 +1468,8 @@ choose_good_entry_server(cpath_build_state_t *state)
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,
excluded, state ? state->need_uptime : 1,
state ? state->need_capacity : 0,
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index f376d3df80..e41580ffd8 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -1005,8 +1005,9 @@ connection_ap_handshake_process_socks(connection_t *conn)
}
} else {
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);
+ r = router_get_by_nickname(conn->chosen_exit_name, 1);
*socks->address = 0;
if (r) {
/* XXXX Should this use server->address instead? */