Browse Source

bug 3026: do not upload our vote to ourself

Nick Mathewson 13 years ago
parent
commit
6b83b3ba2a
2 changed files with 9 additions and 0 deletions
  1. 4 0
      changes/bug3026
  2. 5 0
      src/or/directory.c

+ 4 - 0
changes/bug3026

@@ -0,0 +1,4 @@
+  o Minor bugfixes (directory authority)
+    - Do not upload our own vote or signature set to ourself.  It would
+      tell us nothing new.  Also, as of Tor 0.2.2.24-alpha, we started
+      to warn about receiving duplicate votes.  Resolves bug 3026.

+ 5 - 0
src/or/directory.c

@@ -279,6 +279,8 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
   int post_via_tor;
   smartlist_t *dirservers = router_get_trusted_dir_servers();
   int found = 0;
+  const int exclude_self = (dir_purpose == DIR_PURPOSE_UPLOAD_VOTE ||
+                            dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES);
   tor_assert(dirservers);
   /* This tries dirservers which we believe to be down, but ultimately, that's
    * harmless, and we may as well err on the side of getting things uploaded.
@@ -291,6 +293,9 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
       if ((type & ds->type) == 0)
         continue;
 
+      if (exclude_self && router_digest_is_me(ds->digest))
+        continue;
+
       if (options->ExcludeNodes && options->StrictNodes &&
           routerset_contains_routerstatus(options->ExcludeNodes, rs)) {
         log_warn(LD_DIR, "Wanted to contact authority '%s' for %s, but "