[tor-commits] [tor/maint-0.3.5] Rework rep_hist_log_link_protocol_counts()

nickm at torproject.org nickm at torproject.org
Mon Jan 14 19:02:46 UTC 2019


commit 9d9e71824cc228123aebd28b7b08fb9fb30d36b1
Author: rl1987 <rl1987 at sdf.lonestar.org>
Date:   Sun Dec 23 20:55:14 2018 +0200

    Rework rep_hist_log_link_protocol_counts()
---
 changes/bug28920            |  6 ++++++
 src/feature/stats/rephist.c | 35 +++++++++++++++++------------------
 2 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/changes/bug28920 b/changes/bug28920
new file mode 100644
index 000000000..e698686a6
--- /dev/null
+++ b/changes/bug28920
@@ -0,0 +1,6 @@
+  o Minor bugfixes (logging):
+    - Rework rep_hist_log_link_protocol_counts() to iterate through all link
+      protocol versions when logging incoming/outgoing connection counts. Tor
+      no longer skips version 5 and we don't have to remember to update this
+      function when new link protocol version is developed. Fixes bug 28920;
+      bugfix on 0.2.6.10.
diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c
index 37c4759f3..3967a548b 100644
--- a/src/feature/stats/rephist.c
+++ b/src/feature/stats/rephist.c
@@ -2874,24 +2874,23 @@ rep_hist_get_padding_count_lines(void)
 void
 rep_hist_log_link_protocol_counts(void)
 {
-  log_notice(LD_HEARTBEAT,
-             "Since startup, we have initiated "
-             "%"PRIu64" v1 connections, "
-             "%"PRIu64" v2 connections, "
-             "%"PRIu64" v3 connections, and "
-             "%"PRIu64" v4 connections; and received "
-             "%"PRIu64" v1 connections, "
-             "%"PRIu64" v2 connections, "
-             "%"PRIu64" v3 connections, and "
-             "%"PRIu64" v4 connections.",
-             (link_proto_count[1][1]),
-             (link_proto_count[2][1]),
-             (link_proto_count[3][1]),
-             (link_proto_count[4][1]),
-             (link_proto_count[1][0]),
-             (link_proto_count[2][0]),
-             (link_proto_count[3][0]),
-             (link_proto_count[4][0]));
+  smartlist_t *lines = smartlist_new();
+
+  for (int i = 1; i <= MAX_LINK_PROTO; i++) {
+     char *line = NULL;
+     tor_asprintf(&line, "initiated %"PRIu64" and received "
+                  "%"PRIu64" v%d connections", link_proto_count[i][1],
+                  link_proto_count[i][0], i);
+     smartlist_add(lines, line);
+  }
+
+  char *log_line = smartlist_join_strings(lines, "; ", 0, NULL);
+
+  log_notice(LD_HEARTBEAT, "Since startup we %s.", log_line);
+
+  SMARTLIST_FOREACH(lines, char *, s, tor_free(s));
+  smartlist_free(lines);
+  tor_free(log_line);
 }
 
 /** Free all storage held by the OR/link history caches, by the



More information about the tor-commits mailing list