summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-09-14 09:14:12 -0400
committerNick Mathewson <nickm@torproject.org>2018-09-14 09:14:12 -0400
commitb67f3b751a277fb940b155c0bc64f594db5549b0 (patch)
treeab895243cf3b82492ecf8b9d11d127a55436c77b
parent88c9730817640fb5538d9c136286ecd09914eea7 (diff)
parent33a0c619a8f44cacb400eccc4ab6192d330465c6 (diff)
downloadtor-b67f3b751a277fb940b155c0bc64f594db5549b0.tar.gz
tor-b67f3b751a277fb940b155c0bc64f594db5549b0.zip
Merge branch 'ticket27247'
-rw-r--r--changes/ticket272475
-rw-r--r--src/feature/control/control.c4
-rw-r--r--src/feature/nodelist/networkstatus.c11
3 files changed, 12 insertions, 8 deletions
diff --git a/changes/ticket27247 b/changes/ticket27247
new file mode 100644
index 0000000000..e980913d32
--- /dev/null
+++ b/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.
diff --git a/src/feature/control/control.c b/src/feature/control/control.c
index 2fac3bd6de..095ff8193b 100644
--- a/src/feature/control/control.c
+++ b/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.";
diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c
index 6e386628d7..81da9756aa 100644
--- a/src/feature/nodelist/networkstatus.c
+++ b/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);
}
}