Procházet zdrojové kódy

Check for best consensus when no consensusdiff was found.

This patch ensures that we use the current consensus in the case where
no consensus diff was found or a consensus diff wasn't requested.

See: https://bugs.torproject.org/21667
Alexander Færøy před 7 roky
rodič
revize
ae33deb91d
1 změnil soubory, kde provedl 4 přidání a 1 odebrání
  1. 4 1
      src/or/directory.c

+ 4 - 1
src/or/directory.c

@@ -3815,11 +3815,14 @@ handle_get_current_consensus(dir_connection_t *conn,
                                       &compression_used);
     SMARTLIST_FOREACH(diff_from_digests, uint8_t *, d, tor_free(d));
     smartlist_free(diff_from_digests);
-  } else {
+  }
+
+  if (! cached_consensus) {
     cached_consensus = find_best_consensus(flav,
                                            args->compression_supported,
                                            &compression_used);
   }
+
   time_t fresh_until, valid_until;
   int have_fresh_until = 0, have_valid_until = 0;
   if (cached_consensus) {