From f1d4e3477b9860092f2559513d1cf5319dc2098c Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 9 Oct 2007 17:40:23 +0000 Subject: Bugfixes in fetching certificates for a consensus: fetch tor/keys/fp/X, not tor/keys/X. Also, count signatures where no certificate is known as "missing a certificate" not as "unknown authority." svn:r11805 --- src/or/dirvote.c | 8 +++++--- src/or/routerlist.c | 8 ++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'src/or') diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 83360588cb..1e19f65534 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -725,11 +725,13 @@ networkstatus_check_consensus_signature(networkstatus_vote_t *consensus, authority_cert_get_by_digests(voter->identity_digest, voter->signing_key_digest); if (! cert) { - if (!trusteddirserver_get_by_v3_auth_digest(voter->identity_digest)) + if (!trusteddirserver_get_by_v3_auth_digest(voter->identity_digest)) { smartlist_add(unrecognized, voter); - else + ++n_unknown; + } else { smartlist_add(need_certs_from, voter); - ++n_unknown; + ++n_missing_key; + } continue; } if (networkstatus_check_voter_signature(consensus, voter, cert) < 0) { diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 48ce2f186b..36cd20fccd 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -318,12 +318,16 @@ authority_certs_fetch_missing(networkstatus_vote_t *status) { smartlist_t *fps = smartlist_create(); + smartlist_add(fps, tor_strdup("fp/")); SMARTLIST_FOREACH(missing_digests, const char *, d, { - char *fp = tor_malloc(HEX_DIGEST_LEN+1); + char *fp = tor_malloc(HEX_DIGEST_LEN+2); base16_encode(fp, HEX_DIGEST_LEN+1, d, DIGEST_LEN); + fp[HEX_DIGEST_LEN] = '+'; + fp[HEX_DIGEST_LEN+1] = '\0'; smartlist_add(fps, fp); }); - resource = smartlist_join_strings(fps, "+", 0, NULL); + resource = smartlist_join_strings(fps, "", 0, NULL); + resource[strlen(resource)-1] = '\0'; SMARTLIST_FOREACH(fps, char *, cp, tor_free(cp)); smartlist_free(fps); } -- cgit v1.2.3-54-g00ecf