Pārlūkot izejas kodu

Merge remote-tracking branch 'fristonio/ticket4187'

Nick Mathewson 6 gadi atpakaļ
vecāks
revīzija
df9d2de441
2 mainītis faili ar 13 papildinājumiem un 1 dzēšanām
  1. 3 0
      changes/ticket4187
  2. 10 1
      src/or/networkstatus.c

+ 3 - 0
changes/ticket4187

@@ -0,0 +1,3 @@
+  o Minor bugfix (rename verfied unverified consensus):
+    - Rename a verified unverfied consensus to cached-consenus on the disk.
+      Fixes bug 4187; bugfix on 0.3.3.0-alpha

+ 10 - 1
src/or/networkstatus.c

@@ -237,7 +237,7 @@ router_reload_consensus_networkstatus(void)
     s = networkstatus_read_cached_consensus_impl(flav, flavor, 1);
     if (s) {
       if (networkstatus_set_current_consensus(s, flavor,
-                                     flags|NSSET_WAS_WAITING_FOR_CERTS,
+                                     flags | NSSET_WAS_WAITING_FOR_CERTS,
                                      NULL)) {
         log_info(LD_FS, "Couldn't load unverified consensus %s networkstatus "
                  "from cache", flavor);
@@ -1917,6 +1917,15 @@ networkstatus_set_current_consensus(const char *consensus,
     }
   }
 
+  /* Signatures from the consensus are verified */
+  if (from_cache && was_waiting_for_certs) {
+    /* We check if the consensus is loaded from disk cache and that it
+     * it is an unverified consensus. If it is unverified, rename it to
+     * cached-*-consensus since it has been verified. */
+    log_info(LD_DIR, "Unverified consensus signatures verified.");
+    tor_rename(unverified_fname, consensus_fname);
+  }
+
   if (!from_cache && flav == usable_consensus_flavor())
     control_event_client_status(LOG_NOTICE, "CONSENSUS_ARRIVED");