commit 526beb7be64aaff9af6e26bde8092c8e54eb5d6d
Author: Roger Dingledine <arma(a)torproject.org>
Date: Tue Apr 24 11:26:05 2012 -0400
be willing to use nodes in excludeexitnodes as directory mirrors
fixes bug 5623.
---
changes/bug5623 | 6 ++++++
src/or/connection_edge.c | 8 ++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/changes/bug5623 b/changes/bug5623
new file mode 100644
index 0000000..285a5b1
--- /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 dd772b2..03558e5 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;