mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
r15719@catbus: nickm | 2007-10-12 13:07:45 -0400
Add the routers in the latest consensus to the list of routers to retain when removing old ones. svn:r11895
This commit is contained in:
parent
b60e138586
commit
8fdfdc5bbb
@ -2860,6 +2860,7 @@ routerlist_remove_old_cached_routers_with_id(time_t cutoff, int lo, int hi,
|
|||||||
void
|
void
|
||||||
routerlist_remove_old_routers(void)
|
routerlist_remove_old_routers(void)
|
||||||
{
|
{
|
||||||
|
/* XXXX020 call me less often */
|
||||||
int i, hi=-1;
|
int i, hi=-1;
|
||||||
const char *cur_id = NULL;
|
const char *cur_id = NULL;
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
@ -2878,7 +2879,7 @@ routerlist_remove_old_routers(void)
|
|||||||
|
|
||||||
retain = digestmap_new();
|
retain = digestmap_new();
|
||||||
cutoff = now - OLD_ROUTER_DESC_MAX_AGE;
|
cutoff = now - OLD_ROUTER_DESC_MAX_AGE;
|
||||||
/* Build a list of all the descriptors that _anybody_ recommends. */
|
/* Build a list of all the descriptors that _anybody_ lists. */
|
||||||
SMARTLIST_FOREACH(networkstatus_list, networkstatus_t *, ns,
|
SMARTLIST_FOREACH(networkstatus_list, networkstatus_t *, ns,
|
||||||
{
|
{
|
||||||
/* XXXX The inner loop here gets pretty expensive, and actually shows up
|
/* XXXX The inner loop here gets pretty expensive, and actually shows up
|
||||||
@ -2894,6 +2895,16 @@ routerlist_remove_old_routers(void)
|
|||||||
digestmap_set(retain, rs->descriptor_digest, (void*)1));
|
digestmap_set(retain, rs->descriptor_digest, (void*)1));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Retain anything listed in the consensus. */
|
||||||
|
networkstatus_vote_t *ns = networkstatus_get_latest_consensus();
|
||||||
|
if (ns) {
|
||||||
|
SMARTLIST_FOREACH(ns->routerstatus_list, routerstatus_t *, rs,
|
||||||
|
if (rs->published_on >= cutoff)
|
||||||
|
digestmap_set(retain, rs->descriptor_digest, (void*)1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* If we have a bunch of networkstatuses, we should consider pruning current
|
/* If we have a bunch of networkstatuses, we should consider pruning current
|
||||||
* routers that are too old and that nobody recommends. (If we don't have
|
* routers that are too old and that nobody recommends. (If we don't have
|
||||||
* enough networkstatuses, then we should get more before we decide to kill
|
* enough networkstatuses, then we should get more before we decide to kill
|
||||||
|
Loading…
Reference in New Issue
Block a user