[or-cvs] [tor/master] In the glorious future, all relays cache dir info.

arma at torproject.org arma at torproject.org
Tue Mar 16 08:07:26 UTC 2010


Author: Roger Dingledine <arma at torproject.org>
Date: Tue, 16 Mar 2010 04:02:18 -0400
Subject: In the glorious future, all relays cache dir info.
Commit: fe3380609e6444aadb88c534de0281d9d15d3c85

Now if you're a published relay and you set RefuseUnknownExits, even
if your dirport is off, you'll fetch dir info from the authorities,
fetch it early, and cache it.

In the future, RefuseUnknownExits (or something like it) will be on
by default.
---
 src/or/dirserv.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 5f1cb85..b5c4c7b 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1122,12 +1122,12 @@ 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. */
-  if (options->DirPort == 0)
+  if (options->DirPort == 0 && !options->RefuseUnknownExits)
     return 0;
   if (!server_mode(options) || !advertised_server_mode())
     return 0;
   me = router_get_my_routerinfo();
-  if (!me || !me->dir_port)
+  if (!me || (!me->dir_port && !options->RefuseUnknownExits))
     return 0; /* if dirport not advertised, return 0 too */
   return 1;
 }
@@ -1167,7 +1167,11 @@ directory_caches_v2_dir_info(or_options_t *options)
 int
 directory_caches_dir_info(or_options_t *options)
 {
-  return options->BridgeRelay != 0 || options->DirPort != 0;
+  if (options->BridgeRelay || options->DirPort)
+    return 1;
+  if (!server_mode(options) || !advertised_server_mode())
+    return 0;
+  return options->RefuseUnknownExits;
 }
 
 /** Return 1 if we want to allow remote people to ask us directory
-- 
1.6.5



More information about the tor-commits mailing list