diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/or/directory.c | 5 | ||||
-rw-r--r-- | src/or/dirvote.c | 12 |
3 files changed, 12 insertions, 6 deletions
@@ -24,6 +24,7 @@ Changes in version 0.2.0.9-alpha - 2007-10-?? around indefinitely. - Correctly check for bad options to the "PublishServerDescriptor" config option. Bugfix on 0.2.0.1-alpha; reported by Matt Edman. + - When we discard a vote as a duplicate, do not report this as an error. o Minor bugfixes (memory leaks): - Stop leaking memory on failing case of base32_decode. Bugfix on diff --git a/src/or/directory.c b/src/or/directory.c index ed49a92789..d0f1abcc6d 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -1463,10 +1463,11 @@ connection_dir_client_reached_eof(dir_connection_t *conn) tor_free(body); tor_free(headers); tor_free(reason); return -1; } - if (!dirvote_add_vote(body, &msg, &st)) { + dirvote_add_vote(body, &msg, &st); + if (st > 299) { log_warn(LD_DIR, "Error adding retrieved vote: %s", msg); } else { - log_info(LD_DIR, "Added vote(s) successfully."); + log_info(LD_DIR, "Added vote(s) successfully [msg: %s]", msg); } } if (conn->_base.purpose == DIR_PURPOSE_FETCH_DETACHED_SIGNATURES) { diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 29efcb5083..721e8bee1f 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -1406,8 +1406,6 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out) log_info(LD_DIR, "Discarding a vote we already have."); if (*status_out < 200) *status_out = 200; - if (!*msg_out) - *msg_out = "OK"; goto discard; } else if (v->vote->published < vote->published) { log_notice(LD_DIR, "Replacing an older pending vote from this " @@ -1468,8 +1466,14 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out) if (*status_out < 200) *status_out = 200; - if (!*msg_out) - *msg_out = "ok"; + if (!*msg_out) { + if (!any_failed && !pending_vote) { + *msg_out = "Duplicate discarded"; + } else { + *msg_out = "ok"; + } + } + return any_failed ? NULL : pending_vote; } |