--- /dev/null
+ o Minor bugfixes (small networks):
+ - Allow directories in small networks to bootstrap by
+ skipping DirPort checks when the consensus has no exits.
+ Resolves #19003, bugfix on #18050 in 0.2.8.1-alpha.
+ Patch by teor.
* and
* - We believe both our ORPort and DirPort (if present) are reachable from
* the outside; or
+ * - We believe both our ORPort is reachable from the outside, and we can't
+ * check our DirPort because the consensus has no exits; or
* - We are an authoritative directory server.
*/
static int
return 1;
if (!router_get_advertised_or_port(options))
return 0;
+ /* If there are no exits in the consensus, but have enough descriptors to
+ * build internal paths, we can't possibly verify our DirPort.
+ * This only happens in small networks without exits. */
+ if (router_have_consensus_path() == CONSENSUS_PATH_INTERNAL)
+ return check_whether_orport_reachable();
+ /* If there are exits in the consensus, use an exit to check our DirPort. */
return check_whether_orport_reachable() && check_whether_dirport_reachable();
}