Browse Source

r15853@catbus: nickm | 2007-10-16 11:32:55 -0400
Fix "Error adding vote: OK" message.


svn:r11986

Nick Mathewson 16 years ago
parent
commit
0d26b623ee
3 changed files with 12 additions and 6 deletions
  1. 1 0
      ChangeLog
  2. 3 2
      src/or/directory.c
  3. 8 4
      src/or/dirvote.c

+ 1 - 0
ChangeLog

@@ -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

+ 3 - 2
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) {

+ 8 - 4
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;
 }