diff --git a/ChangeLog b/ChangeLog index 68a6f96c2..a9d1b5d97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,7 @@ Changes in version 0.2.0.10-alpha - 2007-1?-?? o Minor bugfixes: - Refuse to start if both ORPort and UseBridges are set. Bugfix on 0.2.0.x. + - Better log message on vote from unknown authority. o Minor bugfixes (memory leaks): - Stop leaking memory every time we parse a v3 certificate. Bugfix diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 88f18a3b8..e75986a3c 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -1519,18 +1519,12 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out) vi = get_voter(vote); tor_assert(vi->good_signature == 1); ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest); - if (!ds || !(ds->type & V3_AUTHORITY)) { + if (!ds) { char *keys = list_v3_auth_ids(); log_warn(LD_DIR, "Got a vote from an authority with authority key ID %s. " - "This authority %s. Known v3 key IDs are: %s", - hex_str(vi->identity_digest, DIGEST_LEN), - ds?"is not recognized":"is recognized, but is not listed as v3", -/* XXX020 isn't the above line backwards? -RD */ -/* In fact, how can ds->v3_identity_digest be set if it's not a - * V3_AUTHORITY? */ - keys); + "This key ID is not recognized. Known v3 key IDs are: %s", + hex_str(vi->identity_digest, DIGEST_LEN), keys); tor_free(keys); - *msg_out = "Vote not from a recognized v3 authority"; goto err; } diff --git a/src/or/routerlist.c b/src/or/routerlist.c index d12e26f0b..472d20d19 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -779,7 +779,8 @@ trusteddirserver_get_by_v3_auth_digest(const char *digest) SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds, { - if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN)) + if (!memcmp(ds->v3_identity_digest, digest, DIGEST_LEN) && + (ds->type & V3_AUTHORITY)) return ds; });