From feffbce814fcffd341abd5a07ea7a9ba1a06558c Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 6 Dec 2010 11:36:01 -0500 Subject: [PATCH] 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. --- changes/bug2097-more | 6 ++++++ src/or/dirserv.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 changes/bug2097-more 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; -- 2.47.3