diff options
Diffstat (limited to 'src/feature')
-rw-r--r-- | src/feature/client/entrynodes.c | 7 | ||||
-rw-r--r-- | src/feature/nodelist/routerlist.c | 12 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/feature/client/entrynodes.c b/src/feature/client/entrynodes.c index 15ec830594..1bfb62538e 100644 --- a/src/feature/client/entrynodes.c +++ b/src/feature/client/entrynodes.c @@ -2611,6 +2611,10 @@ entry_guards_upgrade_waiting_circuits(guard_selection_t *gs, entry_guard_t *guard = entry_guard_handle_get(state->guard); if (!guard || guard->in_selection != gs) continue; + if (TO_CIRCUIT(circ)->marked_for_close) { + /* Don't consider any marked for close circuits. */ + continue; + } smartlist_add(all_circuits, circ); } SMARTLIST_FOREACH_END(circ); @@ -3761,7 +3765,8 @@ guard_selection_get_err_str_if_dir_info_missing(guard_selection_t *gs, /* otherwise return a helpful error string */ tor_asprintf(&ret_str, "We're missing descriptors for %d/%d of our " - "primary entry guards (total %sdescriptors: %d/%d).", + "primary entry guards (total %sdescriptors: %d/%d). " + "That's ok. We will try to fetch missing descriptors soon.", n_missing_descriptors, num_primary_to_check, using_mds?"micro":"", num_present, num_usable); diff --git a/src/feature/nodelist/routerlist.c b/src/feature/nodelist/routerlist.c index 456f930aa3..e48675aada 100644 --- a/src/feature/nodelist/routerlist.c +++ b/src/feature/nodelist/routerlist.c @@ -954,20 +954,18 @@ routerlist_free_(routerlist_t *rl) smartlist_free(rl->routers); smartlist_free(rl->old_routers); if (rl->desc_store.mmap) { - int res = tor_munmap_file(routerlist->desc_store.mmap); + int res = tor_munmap_file(rl->desc_store.mmap); if (res != 0) { log_warn(LD_FS, "Failed to munmap routerlist->desc_store.mmap"); } } if (rl->extrainfo_store.mmap) { - int res = tor_munmap_file(routerlist->extrainfo_store.mmap); + int res = tor_munmap_file(rl->extrainfo_store.mmap); if (res != 0) { log_warn(LD_FS, "Failed to munmap routerlist->extrainfo_store.mmap"); } } tor_free(rl); - - router_dir_info_changed(); } /** Log information about how much memory is being used for routerlist, @@ -1426,8 +1424,10 @@ routerlist_reparse_old(routerlist_t *rl, signed_descriptor_t *sd) void routerlist_free_all(void) { - routerlist_free(routerlist); - routerlist = NULL; + routerlist_t *rl = routerlist; + routerlist = NULL; // Prevent internals of routerlist_free() from using + // routerlist. + routerlist_free(rl); dirlist_free_all(); if (warned_nicknames) { SMARTLIST_FOREACH(warned_nicknames, char *, cp, tor_free(cp)); |