From 4245662b28d04f2c7d51b8175031007a80f1c3e5 Mon Sep 17 00:00:00 2001 From: George Kadianakis Date: Tue, 24 Jun 2014 14:12:51 -0400 Subject: Functionify the descriptor age check so that we can NOP it in tests. --- src/or/routerlist.c | 11 +++++++++-- src/or/routerlist.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/or') diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 8f3477a4a4..bf4aff3b55 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -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 router 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 router if this function fails; router @@ -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; diff --git a/src/or/routerlist.h b/src/or/routerlist.h index 6e2f2eaea0..adf5d32209 100644 --- a/src/or/routerlist.h +++ b/src/or/routerlist.h @@ -212,6 +212,8 @@ STATIC int choose_array_element_by_weight(const u64_dbl_t *entries, int n_entries); STATIC void scale_array_elements_to_u64(u64_dbl_t *entries, int n_entries, uint64_t *total_out); + +MOCK_DECL(int, router_descriptor_is_too_old, (const routerinfo_t *router)); #endif #endif -- cgit v1.2.3-54-g00ecf