|
@@ -3292,6 +3292,14 @@ routerlist_reset_warnings(void)
|
|
|
networkstatus_reset_warnings();
|
|
|
}
|
|
|
|
|
|
+/** Return 1 if the signed descriptor of this router is too old to be used.
|
|
|
+ * Otherwise return 0. */
|
|
|
+MOCK_IMPL(int,
|
|
|
+router_descriptor_is_too_old,(const routerinfo_t *router))
|
|
|
+{
|
|
|
+ return router->cache_info.published_on < time(NULL)-OLD_ROUTER_DESC_MAX_AGE;
|
|
|
+}
|
|
|
+
|
|
|
/** Add <b>router</b> to the routerlist, if we don't already have it. Replace
|
|
|
* older entries (if any) with the same key. Note: Callers should not hold
|
|
|
* their pointers to <b>router</b> if this function fails; <b>router</b>
|
|
@@ -3460,8 +3468,7 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (!in_consensus && from_cache &&
|
|
|
- router->cache_info.published_on < time(NULL) - OLD_ROUTER_DESC_MAX_AGE) {
|
|
|
+ if (!in_consensus && from_cache && router_descriptor_is_too_old(router)) {
|
|
|
*msg = "Router descriptor was really old.";
|
|
|
routerinfo_free(router);
|
|
|
return ROUTER_WAS_NOT_NEW;
|