diff --git a/changes/bug5623 b/changes/bug5623 new file mode 100644 index 0000000000..285a5b1d79 --- /dev/null +++ b/changes/bug5623 @@ -0,0 +1,6 @@ + o Minor bugfixes: + - After we pick a directory mirror, we would refuse to use it if + it's in our ExcludeExitNodes list, resulting in mysterious failures + to bootstrap for people who just wanted to avoid exiting from + certain locations. Fixes bug 5623; bugfix on 0.2.2.25-alpha. + diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index dd772b22c6..03558e557c 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -3368,8 +3368,12 @@ connection_ap_can_use_exit(const entry_connection_t *conn, const node_t *exit) } } - if (conn->socks_request->command == SOCKS_COMMAND_CONNECT && - !conn->use_begindir) { + if (conn->use_begindir) { + /* Internal directory fetches do not count as exiting. */ + return 1; + } + + if (conn->socks_request->command == SOCKS_COMMAND_CONNECT) { struct in_addr in; tor_addr_t addr, *addrp = NULL; addr_policy_result_t r;