瀏覽代碼

Fall back to routerlist instead of descriptor_list when we are a cache.

svn:r4837
Nick Mathewson 20 年之前
父節點
當前提交
e68bed8782
共有 1 個文件被更改,包括 13 次插入0 次删除
  1. 13 0
      src/or/dirserv.c

+ 13 - 0
src/or/dirserv.c

@@ -1275,6 +1275,19 @@ dirserv_get_networkstatus_v2(const char **directory, const char *key,
 void
 dirserv_get_routerdescs(smartlist_t *descs_out, const char *key)
 {
+  smartlist_t *complete_list;
+
+  /* This is annoying. Can we unify these? */
+  if (descriptor_list)
+    complete_list = descriptor_list;
+  else {
+    routerlist_t *rlst;
+    router_get_routerlist(&rlst);
+    complete_list = rlst->routers;
+  }
+
+  if (!complete_list)
+    return;
 
   if (!strcmp(key, "/tor/server/all")) {
     smartlist_add_all(descs_out, descriptor_list);