[tor-commits] [tor/master] Report the states of failed TLS connections from bootstrap_problem

nickm at torproject.org nickm at torproject.org
Mon Jul 11 20:16:17 UTC 2011


commit b0de8560f6f7b54c363226c11d277b6b08b1cbc7
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Jun 28 14:29:29 2011 -0400

    Report the states of failed TLS connections from bootstrap_problem
---
 changes/feature3116 |    5 +++++
 src/or/control.c    |    9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/changes/feature3116 b/changes/feature3116
new file mode 100644
index 0000000..386790c
--- /dev/null
+++ b/changes/feature3116
@@ -0,0 +1,5 @@
+  o Major features:
+    - While we're trying to bootstrap, record how many TLS connections
+      fail in each state, and report which states saw the most failures
+      in response to any bootstrap failures. This feature may speed up
+      diagnosis of censorship events.
diff --git a/src/or/control.c b/src/or/control.c
index 6ea9dbe..fa0c6cf 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -18,6 +18,7 @@
 #include "config.h"
 #include "connection.h"
 #include "connection_edge.h"
+#include "connection_or.h"
 #include "control.h"
 #include "directory.h"
 #include "dirserv.h"
@@ -4268,6 +4269,7 @@ control_event_bootstrap_problem(const char *warn, int reason)
   const char *tag, *summary;
   char buf[BOOTSTRAP_MSG_LEN];
   const char *recommendation = "ignore";
+  int severity;
 
   /* bootstrap_percent must not be in "undefined" state here. */
   tor_assert(status >= 0);
@@ -4292,12 +4294,17 @@ control_event_bootstrap_problem(const char *warn, int reason)
     status--; /* find a recognized status string based on current progress */
   status = bootstrap_percent; /* set status back to the actual number */
 
-  log_fn(!strcmp(recommendation, "warn") ? LOG_WARN : LOG_INFO,
+  severity = !strcmp(recommendation, "warn") ? LOG_WARN : LOG_INFO;
+
+  log_fn(severity,
          LD_CONTROL, "Problem bootstrapping. Stuck at %d%%: %s. (%s; %s; "
          "count %d; recommendation %s)",
          status, summary, warn,
          orconn_end_reason_to_control_string(reason),
          bootstrap_problems, recommendation);
+
+  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",





More information about the tor-commits mailing list