From 79c69d18b76e8836593e1beb3d239a5ff5e63a7b Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 27 Feb 2015 11:28:30 -0500 Subject: [PATCH 1/2] Include a HOST item in BOOTSTRAP problem messages Closes ticket 15006. --- changes/feature15006 | 4 ++++ src/or/control.c | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 changes/feature15006 diff --git a/changes/feature15006 b/changes/feature15006 new file mode 100644 index 0000000000..168a440ba0 --- /dev/null +++ b/changes/feature15006 @@ -0,0 +1,4 @@ + o Minor features (controller): + - Messages about problems in the bootstrap process now include + information about the server we were trying to connect to when we + noticed the problem. Closes ticket 15006. diff --git a/src/or/control.c b/src/or/control.c index a2b986768a..dc3e5fc6a7 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -5049,6 +5049,7 @@ MOCK_IMPL(void, char buf[BOOTSTRAP_MSG_LEN]; const char *recommendation = "ignore"; int severity; + char host[128]; /* bootstrap_percent must not be in "undefined" state here. */ tor_assert(status >= 0); @@ -5078,6 +5079,8 @@ MOCK_IMPL(void, if (we_are_hibernating()) recommendation = "ignore"; + orconn_target_get_name(host, sizeof(host), or_conn); + while (status>=0 && bootstrap_status_to_string(status, &tag, &summary) < 0) status--; /* find a recognized status string based on current progress */ status = bootstrap_percent; /* set status back to the actual number */ @@ -5086,19 +5089,19 @@ MOCK_IMPL(void, log_fn(severity, LD_CONTROL, "Problem bootstrapping. Stuck at %d%%: %s. (%s; %s; " - "count %d; recommendation %s)", + "count %d; recommendation %s; host %s)", status, summary, warn, orconn_end_reason_to_control_string(reason), - bootstrap_problems, recommendation); + bootstrap_problems, recommendation, host); connection_or_report_broken_states(severity, LD_HANDSHAKE); tor_snprintf(buf, sizeof(buf), "BOOTSTRAP PROGRESS=%d TAG=%s SUMMARY=\"%s\" WARNING=\"%s\" REASON=%s " - "COUNT=%d RECOMMENDATION=%s", + "COUNT=%d RECOMMENDATION=%s HOST=\"%s\"", bootstrap_percent, tag, summary, warn, orconn_end_reason_to_control_string(reason), bootstrap_problems, - recommendation); + recommendation, host); tor_snprintf(last_sent_bootstrap_message, sizeof(last_sent_bootstrap_message), "WARN %s", buf); From 98822df3dcdf7cd0456aee7898507dd3059f930b Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 4 Mar 2015 14:23:59 +0100 Subject: [PATCH 2/2] Make boostrap events include hostname ANDaddr AND digest --- src/or/control.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/or/control.c b/src/or/control.c index dc3e5fc6a7..e25c3b2954 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -5049,7 +5049,6 @@ MOCK_IMPL(void, char buf[BOOTSTRAP_MSG_LEN]; const char *recommendation = "ignore"; int severity; - char host[128]; /* bootstrap_percent must not be in "undefined" state here. */ tor_assert(status >= 0); @@ -5079,8 +5078,6 @@ MOCK_IMPL(void, if (we_are_hibernating()) recommendation = "ignore"; - orconn_target_get_name(host, sizeof(host), or_conn); - while (status>=0 && bootstrap_status_to_string(status, &tag, &summary) < 0) status--; /* find a recognized status string based on current progress */ status = bootstrap_percent; /* set status back to the actual number */ @@ -5089,19 +5086,26 @@ MOCK_IMPL(void, log_fn(severity, LD_CONTROL, "Problem bootstrapping. Stuck at %d%%: %s. (%s; %s; " - "count %d; recommendation %s; host %s)", + "count %d; recommendation %s; host %s at %s:%d)", status, summary, warn, orconn_end_reason_to_control_string(reason), - bootstrap_problems, recommendation, host); + bootstrap_problems, recommendation, + hex_str(or_conn->identity_digest, DIGEST_LEN), + or_conn->base_.address, + or_conn->base_.port); connection_or_report_broken_states(severity, LD_HANDSHAKE); tor_snprintf(buf, sizeof(buf), "BOOTSTRAP PROGRESS=%d TAG=%s SUMMARY=\"%s\" WARNING=\"%s\" REASON=%s " - "COUNT=%d RECOMMENDATION=%s HOST=\"%s\"", + "COUNT=%d RECOMMENDATION=%s HOSTID=\"%s\" HOSTADDR=\"%s:%d\"", bootstrap_percent, tag, summary, warn, orconn_end_reason_to_control_string(reason), bootstrap_problems, - recommendation, host); + recommendation, + hex_str(or_conn->identity_digest, DIGEST_LEN), + or_conn->base_.address, + (int)or_conn->base_.port); + tor_snprintf(last_sent_bootstrap_message, sizeof(last_sent_bootstrap_message), "WARN %s", buf);