summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-12-06 11:36:01 -0500
committerNick Mathewson <nickm@torproject.org>2010-12-06 11:36:01 -0500
commitfeffbce814fcffd341abd5a07ea7a9ba1a06558c (patch)
tree787af4799ae31a4b30351457ae83848adcafc120
parentc0f1517d87d0c858ba8472eb85fd31df73f4b4d1 (diff)
downloadtor-feffbce814fcffd341abd5a07ea7a9ba1a06558c.tar.gz
tor-feffbce814fcffd341abd5a07ea7a9ba1a06558c.zip
Add a missing ! to directory_fetches_from_authorities
The old logic would have us fetch from authorities if we were refusing unknown exits and our exit policy was reject*. Instead, we want to fetch from authorities if we're refusing unknown exits and our exit policy is _NOT_ reject*. Fixed by boboper. Fixes more of 2097. Bugfix on 0.2.2.16-alpha.
-rw-r--r--changes/bug2097-more6
-rw-r--r--src/or/dirserv.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/changes/bug2097-more b/changes/bug2097-more
new file mode 100644
index 0000000000..52351cc019
--- /dev/null
+++ b/changes/bug2097-more
@@ -0,0 +1,6 @@
+ o Minor bugfixes:
+ - Fix a logic error in directory_fetches_from_authorities that
+ would cause all _non_-exits refusing single-hop-like circuits to
+ fetch from authorities, when we wanted to have _exits_ fetch
+ from authorities. Fix by boboper; fixes more of 2097; bugfix on
+ 0.2.2.16-alpha.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 42d7d561ce..10b9000d51 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1160,7 +1160,7 @@ directory_fetches_from_authorities(or_options_t *options)
return 0;
if (server_mode(options) && router_pick_published_address(options, &addr)<0)
return 1; /* we don't know our IP address; ask an authority. */
- refuseunknown = router_my_exit_policy_is_reject_star() &&
+ refuseunknown = ! router_my_exit_policy_is_reject_star() &&
should_refuse_unknown_exits(options);
if (options->DirPort == 0 && !refuseunknown)
return 0;