From d7e4706f2293cb199d3246197b2d911188de0e45 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 25 Apr 2018 10:09:50 -0400 Subject: [PATCH] ns: Move ns_detached_signatures_free() to networkstatus.c From dirvote.c to networkstatus.c where it makes more sense both in terms of namespace and subsystem responsability. This removes one less dependency on the dirauth module. Signed-off-by: David Goulet --- src/or/dirauth/dirvote.c | 19 ------------------- src/or/dirauth/dirvote.h | 5 ----- src/or/networkstatus.c | 19 +++++++++++++++++++ src/or/networkstatus.h | 3 +++ 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/or/dirauth/dirvote.c b/src/or/dirauth/dirvote.c index 5af6d841f8..b28bcf5ce5 100644 --- a/src/or/dirauth/dirvote.c +++ b/src/or/dirauth/dirvote.c @@ -2703,25 +2703,6 @@ get_detached_signatures_from_pending_consensuses(pending_consensus_t *pending, return signatures; } -/** Release all storage held in s. */ -void -ns_detached_signatures_free_(ns_detached_signatures_t *s) -{ - if (!s) - return; - if (s->signatures) { - STRMAP_FOREACH(s->signatures, flavor, smartlist_t *, sigs) { - SMARTLIST_FOREACH(sigs, document_signature_t *, sig, - document_signature_free(sig)); - smartlist_free(sigs); - } STRMAP_FOREACH_END; - strmap_free(s->signatures, NULL); - strmap_free(s->digests, tor_free_); - } - - tor_free(s); -} - /** Entry point: Take whatever voting actions are pending as of now. */ void dirvote_act(const or_options_t *options, time_t now) diff --git a/src/or/dirauth/dirvote.h b/src/or/dirauth/dirvote.h index 6f4c55243f..fcc7cecf26 100644 --- a/src/or/dirauth/dirvote.h +++ b/src/or/dirauth/dirvote.h @@ -115,11 +115,6 @@ dirvote_free_all(void) #endif /* HAVE_MODULE_DIRAUTH */ -/* Vote manipulation */ -void ns_detached_signatures_free_(ns_detached_signatures_t *s); -#define ns_detached_signatures_free(s) \ - FREE_AND_NULL(ns_detached_signatures_t, ns_detached_signatures_free_, (s)) - void dirvote_recalculate_timing(const or_options_t *options, time_t now); /* Invoked on timers and by outside triggers. */ struct pending_vote_t * dirvote_add_vote(const char *vote_body, diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index f78d9d672b..fa8d0bcf13 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -2642,6 +2642,25 @@ networkstatus_check_required_protocols(const networkstatus_t *ns, return 0; } +/** Release all storage held in s. */ +void +ns_detached_signatures_free_(ns_detached_signatures_t *s) +{ + if (!s) + return; + if (s->signatures) { + STRMAP_FOREACH(s->signatures, flavor, smartlist_t *, sigs) { + SMARTLIST_FOREACH(sigs, document_signature_t *, sig, + document_signature_free(sig)); + smartlist_free(sigs); + } STRMAP_FOREACH_END; + strmap_free(s->signatures, NULL); + strmap_free(s->digests, tor_free_); + } + + tor_free(s); +} + /** Free all storage held locally in this module. */ void networkstatus_free_all(void) diff --git a/src/or/networkstatus.h b/src/or/networkstatus.h index 04cf277d2f..bd78292050 100644 --- a/src/or/networkstatus.h +++ b/src/or/networkstatus.h @@ -24,6 +24,9 @@ void routerstatus_free_(routerstatus_t *rs); void networkstatus_vote_free_(networkstatus_t *ns); #define networkstatus_vote_free(ns) \ FREE_AND_NULL(networkstatus_t, networkstatus_vote_free_, (ns)) +void ns_detached_signatures_free_(ns_detached_signatures_t *s); +#define ns_detached_signatures_free(s) \ + FREE_AND_NULL(ns_detached_signatures_t, ns_detached_signatures_free_, (s)) networkstatus_voter_info_t *networkstatus_get_voter_by_id( networkstatus_t *vote, const char *identity);