aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug56236
-rw-r--r--src/or/connection_edge.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/changes/bug5623 b/changes/bug5623
new file mode 100644
index 000000000..285a5b1d7
--- /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 dd772b22c..03558e557 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;