From 9d9e71824cc228123aebd28b7b08fb9fb30d36b1 Mon Sep 17 00:00:00 2001 From: rl1987 Date: Sun, 23 Dec 2018 20:55:14 +0200 Subject: [PATCH] Rework rep_hist_log_link_protocol_counts() --- changes/bug28920 | 6 ++++++ src/feature/stats/rephist.c | 35 +++++++++++++++++------------------ 2 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 changes/bug28920 diff --git a/changes/bug28920 b/changes/bug28920 new file mode 100644 index 0000000000..e698686a6d --- /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 37c4759f37..3967a548b5 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