Selaa lähdekoodia

Merge branch 'ticket27247'

Nick Mathewson 5 vuotta sitten
vanhempi
commit
b67f3b751a
3 muutettua tiedostoa jossa 12 lisäystä ja 8 poistoa
  1. 5 0
      changes/ticket27247
  2. 1 3
      src/feature/control/control.c
  3. 6 5
      src/feature/nodelist/networkstatus.c

+ 5 - 0
changes/ticket27247

@@ -0,0 +1,5 @@
+  o Minor bugfixes (client, memory usage):
+    - When not running as a directory cache, there is no need to store the
+      text of the current consensus networkstatus in RAM.  Previously,
+      however, clients would store this anyway, at a cost of over 5 MB.
+      Now, they do not. Fixes bug 27247; bugfix on 0.3.0.1-alpha.

+ 1 - 3
src/feature/control/control.c

@@ -2341,9 +2341,7 @@ getinfo_helper_dir(control_connection_t *control_conn,
         *answer = tor_strdup(consensus->dir);
     }
     if (!*answer) { /* try loading it from disk */
-      char *filename = get_cachedir_fname("cached-consensus");
-      *answer = read_file_to_str(filename, RFTS_IGNORE_MISSING, NULL);
-      tor_free(filename);
+      *answer = networkstatus_read_cached_consensus("ns");
       if (!*answer) { /* generate an error */
         *errmsg = "Could not open cached consensus. "
           "Make sure FetchUselessDescriptors is set to 1.";

+ 6 - 5
src/feature/nodelist/networkstatus.c

@@ -2098,12 +2098,13 @@ networkstatus_set_current_consensus(const char *consensus,
   }
 
   if (we_want_to_fetch_flavor(options, flav)) {
-    dirserv_set_cached_consensus_networkstatus(consensus,
-                                               flavor,
-                                               &c->digests,
-                                               c->digest_sha3_as_signed,
-                                               c->valid_after);
     if (dir_server_mode(get_options())) {
+      dirserv_set_cached_consensus_networkstatus(consensus,
+                                                 flavor,
+                                                 &c->digests,
+                                                 c->digest_sha3_as_signed,
+                                                 c->valid_after);
+
       consdiffmgr_add_consensus(consensus, c);
     }
   }