Merge branch 'maint-0.2.1'

This commit is contained in:
Roger Dingledine 2009-09-16 21:28:49 -04:00
commit 926ca5befd
2 changed files with 9 additions and 1 deletions

View File

@ -165,6 +165,8 @@ Changes in version 0.2.1.20 - 2009-??-??
excluded in ExcludeExitNodes, but the circuit is not used to access
the outside world. This should help fix bug 1090. Bugfix on
0.2.1.6-alpha.
- Teach connection_ap_can_use_exit to respect the Exclude*Nodes config
options. Should fix bug 1090. Bugfix on 0.0.2-pre16.
o Minor features:
- Add a "getinfo status/accepted-server-descriptor" controller

View File

@ -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;
}