diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-10-16 15:34:14 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-10-16 15:34:14 +0000 |
commit | 0d26b623eec51e82c8c0475a51493fd5b5f044de (patch) | |
tree | 15416783a620ec749a51b579d8a981917d952446 | |
parent | c5fb1c19eb9f1a4de223bf96e69f9351d38c6e00 (diff) | |
download | tor-0d26b623eec51e82c8c0475a51493fd5b5f044de.tar.gz tor-0d26b623eec51e82c8c0475a51493fd5b5f044de.zip |
r15853@catbus: nickm | 2007-10-16 11:32:55 -0400
Fix "Error adding vote: OK" message.
svn:r11986
-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; } |