[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] fix bug: we were caching the newest descriptor for each ser...
Update of /home2/or/cvsroot/tor/src/or
In directory moria:/home/arma/work/onion/cvs/tor/src/or
Modified Files:
routerlist.c
Log Message:
fix bug: we were caching the newest descriptor for each server,
well, forever. i imagine this just keeps growing in size.
Index: routerlist.c
===================================================================
RCS file: /home2/or/cvsroot/tor/src/or/routerlist.c,v
retrieving revision 1.434
retrieving revision 1.435
diff -u -p -d -r1.434 -r1.435
--- routerlist.c 3 Feb 2006 15:17:48 -0000 1.434
+++ routerlist.c 5 Feb 2006 02:07:28 -0000 1.435
@@ -1708,7 +1708,8 @@ routerlist_remove_old_routers(void)
{
int i, hi=-1;
const char *cur_id = NULL;
- time_t now, cutoff;
+ time_t now = time(NULL);
+ time_t cutoff;
routerinfo_t *router;
signed_descriptor_t *sd;
digestmap_t *retain;
@@ -1717,15 +1718,16 @@ routerlist_remove_old_routers(void)
return;
retain = digestmap_new();
+ cutoff = now - OLD_ROUTER_DESC_MAX_AGE;
if (server_mode(options) && options->DirPort) {
SMARTLIST_FOREACH(networkstatus_list, networkstatus_t *, ns,
{
SMARTLIST_FOREACH(ns->entries, routerstatus_t *, rs,
- digestmap_set(retain, rs->descriptor_digest, (void*)1));
+ if (rs->published_on >= cutoff)
+ digestmap_set(retain, rs->descriptor_digest, (void*)1));
});
}
- now = time(NULL);
cutoff = now - ROUTER_MAX_AGE;
/* Remove too-old members of routerlist->routers. */
for (i = 0; i < smartlist_len(routerlist->routers); ++i) {