|
@@ -1806,8 +1806,11 @@ router_pick_dirserver_generic(smartlist_t *sourcelist,
|
|
|
const routerstatus_t *choice;
|
|
|
int busy = 0;
|
|
|
|
|
|
- if (smartlist_len(sourcelist) == 1)
|
|
|
+ if (smartlist_len(sourcelist) == 1) {
|
|
|
+ /* If there's only one choice, then we should disable the logic that
|
|
|
+ * would otherwise prevent us from choosing ourself. */
|
|
|
flags |= PDS_ALLOW_SELF;
|
|
|
+ }
|
|
|
|
|
|
choice = router_pick_trusteddirserver_impl(sourcelist, type, flags, &busy);
|
|
|
if (choice || !(flags & PDS_RETRY_IF_NO_SERVERS))
|