瀏覽代碼

Allow single DA if explicitly configured

When on a private network a single directory authority is explicitly
configured, allow that DA's instace of tor to pick itself as its own
DA, by having router_pick_dirserver_generic() set the PDS_ALLOW_SELF
flag when the list of potential sources contains only one element.
This would subsequently allow router_pick_trusteddirserver_impl() to
calculate is 'requreother' condition as 'false', enabling it to pick
itself as a valid DA candidate.

Fixes #25928

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Gabriel L. Somlo 7 年之前
父節點
當前提交
97fad99483
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      src/or/routerlist.c

+ 3 - 0
src/or/routerlist.c

@@ -1806,6 +1806,9 @@ router_pick_dirserver_generic(smartlist_t *sourcelist,
   const routerstatus_t *choice;
   int busy = 0;
 
+  if (smartlist_len(sourcelist) == 1)
+    flags |= PDS_ALLOW_SELF;
+
   choice = router_pick_trusteddirserver_impl(sourcelist, type, flags, &busy);
   if (choice || !(flags & PDS_RETRY_IF_NO_SERVERS))
     return choice;