diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-08-14 16:39:18 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-08-14 16:39:18 +0000 |
commit | 25d2901857f60809a60e8b64cc27df69b2b8d52e (patch) | |
tree | c18f434c892b39d9617fb6060ac4684ce47768af /src/or/dirvote.c | |
parent | 925394022ab456ea32d6ea382e413886b03a6dbb (diff) | |
download | tor-25d2901857f60809a60e8b64cc27df69b2b8d52e.tar.gz tor-25d2901857f60809a60e8b64cc27df69b2b8d52e.zip |
r14015@Kushana: nickm | 2007-08-14 12:39:04 -0400
Try to avoid adding duplicate signatures to a consensus.
svn:r11105
Diffstat (limited to 'src/or/dirvote.c')
-rw-r--r-- | src/or/dirvote.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/or/dirvote.c b/src/or/dirvote.c index d22d73eee5..0846772eda 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -803,8 +803,12 @@ networkstatus_add_signatures_impl(networkstatus_vote_t *target, networkstatus_check_voter_signature(target, src_voter, cert); } } - /* If this signature is good, then replace and add. */ - if (src_voter->good_signature || !target_voter->signature) { + /* XXXX020 We want to add signatures for which we don't have the cert, + * pending the arrival of the cert information. But this means we need + * to replace them if a better one comes along, and that's not + * implemented yet. */ + /* If this signature is good, then add it. */ + if (src_voter->good_signature) { tor_free(target_voter->signature); target_voter->signature = tor_memdup(src_voter->signature, src_voter->signature_len); @@ -1325,6 +1329,9 @@ dirvote_compute_consensus(void) log_warn(LD_DIR, "Couldn't parse consensus we generated!"); goto err; } + /* 'Check' our own signature, to mark it valid. */ + networkstatus_check_consensus_signature(consensus); + signatures = networkstatus_get_detached_signatures(consensus); if (!signatures) { log_warn(LD_DIR, "Couldn't extract signatures."); |