Avoid going directly to the directory authorities even if you're a

relay, if you haven't found yourself reachable yet or if you've
decided not to advertise your dirport yet. Addresses bug 556.


svn:r13172
This commit is contained in:
Roger Dingledine 2008-01-18 04:42:22 +00:00
parent 200ce2030c
commit 06047bcec9
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,10 @@
Changes in version 0.2.0.18-alpha - 2008-01-??
o Major features:
- Avoid going directly to the directory authorities even if you're a
relay, if you haven't found yourself reachable yet or if you've
decided not to advertise your dirport yet. Addresses bug 556.
Changes in version 0.2.0.17-alpha - 2008-01-17
o Compile fixes:
- Make the tor-gencert man page get included correctly in the tarball.

View File

@ -1116,16 +1116,18 @@ dirserv_dump_directory_to_string(char **dir_out,
int
directory_fetches_from_authorities(or_options_t *options)
{
routerinfo_t *me;
if (options->FetchDirInfoEarly)
return 1;
if (options->DirPort == 0)
return 0;
if (options->BridgeRelay == 1)
return 0;
/* XXX if dirport not advertised, return 0 too */
if (!server_mode(options))
if (!server_mode(options) || !advertised_server_mode())
return 0;
/* XXX if orport or dirport not reachable, return 0 too */
me = router_get_my_routerinfo();
if (!me || !me->dir_port)
return 0; /* if dirport not advertised, return 0 too */
return 1;
}