summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2009-09-16 21:28:49 -0400
committerRoger Dingledine <arma@torproject.org>2009-09-16 21:28:49 -0400
commit926ca5befda7d5ab2338905877a4f7bf4c656670 (patch)
tree4ab7ff2f695506579b8d60f9368dfa742fc18da1 /src/or
parent7d838971dd2dd754cc49ac68f8958529680a569d (diff)
parentdc3229313b6d2aaff437c6fc7fa55ead4409e93d (diff)
downloadtor-926ca5befda7d5ab2338905877a4f7bf4c656670.tar.gz
tor-926ca5befda7d5ab2338905877a4f7bf4c656670.zip
Merge branch 'maint-0.2.1'
Diffstat (limited to 'src/or')
-rw-r--r--src/or/connection_edge.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index f25202725e..478bdf2b24 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -2838,11 +2838,13 @@ connection_edge_is_rendezvous_stream(edge_connection_t *conn)
/** Return 1 if router <b>exit</b> is likely to allow stream <b>conn</b>
* to exit from it, or 0 if it probably will not allow it.
* (We might be uncertain if conn's destination address has not yet been
- * resolved.)
+ * resolved.) If the router is in the list of excluded nodes, also return 0;
*/
int
connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit)
{
+ or_options_t *options = get_options();
+
tor_assert(conn);
tor_assert(conn->_base.type == CONN_TYPE_AP);
tor_assert(conn->socks_request);
@@ -2888,6 +2890,10 @@ connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit)
if (!conn->chosen_exit_name && policy_is_reject_star(exit->exit_policy))
return 0;
}
+ if (options->_ExcludeExitNodesUnion &&
+ routerset_contains_router(options->_ExcludeExitNodesUnion, exit))
+ return 0;
+
return 1;
}