[tor-commits] [tor/master] Store errors from TLS write and handshake in the tls_error field.

nickm at torproject.org nickm at torproject.org
Thu Jul 2 14:15:11 UTC 2020


commit d486c6cf74db6bce80689c17c7427a6e3a055f93
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Jun 26 10:45:42 2020 -0400

    Store errors from TLS write and handshake in the tls_error field.
    
    Previously, we would only update this field when the error happened
    during a read.
    
    This will improves our reporting for our bootstrap status, and help
    to address #32622.  The problem is not completely solved by this
    patch, however: too many errors are still lumped into "MISC".
---
 src/core/mainloop/connection.c | 1 +
 src/core/or/connection_or.c    | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
index a8417e46d..792cdbf68 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -4205,6 +4205,7 @@ connection_handle_write_impl(connection_t *conn, int force)
     switch (result) {
       CASE_TOR_TLS_ERROR_ANY:
       case TOR_TLS_CLOSE:
+        or_conn->tls_error = result;
         log_info(LD_NET, result != TOR_TLS_CLOSE ?
                  "tls error. breaking.":"TLS connection closed on flush");
         /* Don't flush; connection is dead. */
diff --git a/src/core/or/connection_or.c b/src/core/or/connection_or.c
index 5d71b363f..4cb83f45a 100644
--- a/src/core/or/connection_or.c
+++ b/src/core/or/connection_or.c
@@ -1692,7 +1692,8 @@ connection_tls_continue_handshake(or_connection_t *conn)
 
   switch (result) {
     CASE_TOR_TLS_ERROR_ANY:
-    log_info(LD_OR,"tls error [%s]. breaking connection.",
+      conn->tls_error = result;
+      log_info(LD_OR,"tls error [%s]. breaking connection.",
              tor_tls_err_to_string(result));
       return -1;
     case TOR_TLS_DONE:
@@ -1724,6 +1725,7 @@ connection_tls_continue_handshake(or_connection_t *conn)
       log_debug(LD_OR,"wanted read");
       return 0;
     case TOR_TLS_CLOSE:
+      conn->tls_error = result;
       log_info(LD_OR,"tls closed. breaking connection.");
       return -1;
   }





More information about the tor-commits mailing list