mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 18:22:09 +01:00
r14045@Kushana: nickm | 2007-08-15 13:07:21 -0400
Add more logs to try to hunt down latest voting bug. svn:r11123
This commit is contained in:
parent
38b84d9659
commit
e10041447c
@ -16,6 +16,7 @@ const char dirvote_c_id[] =
|
|||||||
static int dirvote_add_signatures_to_pending_consensus(
|
static int dirvote_add_signatures_to_pending_consensus(
|
||||||
const char *detached_signatures_body,
|
const char *detached_signatures_body,
|
||||||
const char **msg_out);
|
const char **msg_out);
|
||||||
|
static char *list_v3_auth_ids(void); //XXXX020 nuke this.
|
||||||
|
|
||||||
/* =====
|
/* =====
|
||||||
* Voting and consensus generation
|
* Voting and consensus generation
|
||||||
@ -1127,8 +1128,15 @@ dirvote_recalculate_timing(time_t now)
|
|||||||
void
|
void
|
||||||
dirvote_act(time_t now)
|
dirvote_act(time_t now)
|
||||||
{
|
{
|
||||||
if (!voting_schedule.voting_starts)
|
if (!voting_schedule.voting_starts) {
|
||||||
|
char *keys = list_v3_auth_ids();
|
||||||
|
authority_cert_t *c = get_my_v3_authority_cert();
|
||||||
|
log_notice(LD_DIR, "Scheduling voting. Known authority IDs are %s."
|
||||||
|
"Mine is %s.",
|
||||||
|
keys, hex_str(c->cache_info.identity_digest, DIGEST_LEN));
|
||||||
|
tor_free(keys);
|
||||||
dirvote_recalculate_timing(now);
|
dirvote_recalculate_timing(now);
|
||||||
|
}
|
||||||
if (voting_schedule.voting_starts < now && !voting_schedule.have_voted) {
|
if (voting_schedule.voting_starts < now && !voting_schedule.have_voted) {
|
||||||
log_notice(LD_DIR, "Time to vote.");
|
log_notice(LD_DIR, "Time to vote.");
|
||||||
dirvote_perform_vote();
|
dirvote_perform_vote();
|
||||||
@ -1152,7 +1160,7 @@ dirvote_act(time_t now)
|
|||||||
voting_schedule.have_published_consensus = 1;
|
voting_schedule.have_published_consensus = 1;
|
||||||
}
|
}
|
||||||
if (voting_schedule.discard_old_votes < now) {
|
if (voting_schedule.discard_old_votes < now) {
|
||||||
log_notice(LD_DIR, "Time to discard old votes consensus.");
|
log_notice(LD_DIR, "Time to discard old votes.");
|
||||||
dirvote_clear_pending_votes();
|
dirvote_clear_pending_votes();
|
||||||
dirvote_recalculate_timing(now);
|
dirvote_recalculate_timing(now);
|
||||||
}
|
}
|
||||||
@ -1229,6 +1237,23 @@ dirvote_clear_pending_votes(void)
|
|||||||
log_notice(LD_DIR, "Pending votes cleared.");
|
log_notice(LD_DIR, "Pending votes cleared.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXXX020 delete me. */
|
||||||
|
static char *
|
||||||
|
list_v3_auth_ids(void)
|
||||||
|
{
|
||||||
|
smartlist_t *known_v3_keys = smartlist_create();
|
||||||
|
char *keys;
|
||||||
|
SMARTLIST_FOREACH(router_get_trusted_dir_servers(),
|
||||||
|
trusted_dir_server_t *, ds,
|
||||||
|
if (!tor_digest_is_zero(ds->v3_identity_digest))
|
||||||
|
smartlist_add(known_v3_keys,
|
||||||
|
tor_strdup(hex_str(ds->v3_identity_digest, DIGEST_LEN))));
|
||||||
|
keys = smartlist_join_strings(known_v3_keys, ", ", 0, NULL);
|
||||||
|
SMARTLIST_FOREACH(known_v3_keys, char *, cp, tor_free(cp));
|
||||||
|
smartlist_free(known_v3_keys);
|
||||||
|
return keys;
|
||||||
|
}
|
||||||
|
|
||||||
/** DOCDOC */
|
/** DOCDOC */
|
||||||
pending_vote_t *
|
pending_vote_t *
|
||||||
dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
|
dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
|
||||||
@ -1256,6 +1281,14 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
|
|||||||
tor_assert(vi->good_signature == 1);
|
tor_assert(vi->good_signature == 1);
|
||||||
ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest);
|
ds = trusteddirserver_get_by_v3_auth_digest(vi->identity_digest);
|
||||||
if (!ds || !(ds->type & V3_AUTHORITY)) {
|
if (!ds || !(ds->type & V3_AUTHORITY)) {
|
||||||
|
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",
|
||||||
|
keys);
|
||||||
|
tor_free(keys);
|
||||||
|
|
||||||
*msg_out = "Vote not from a recognized v3 authority";
|
*msg_out = "Vote not from a recognized v3 authority";
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user