]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add a TLS_ERROR bootstrap failure reason.
authorNick Mathewson <nickm@torproject.org>
Fri, 26 Jun 2020 14:59:59 +0000 (10:59 -0400)
committerNick Mathewson <nickm@torproject.org>
Fri, 26 Jun 2020 14:59:59 +0000 (10:59 -0400)
If our TLS connection fails for a "misc" reason, we don't need to
say that the reason is "misc" -- we can at least localize it to
the TLS module.

Part of a fix for #32622.

src/core/or/or.h
src/core/or/reasons.c

index 5b35cbe7f1e96a6d89bb7d49a67f073462f1aaae..8758a2ec6f65ba6c7122d776b324a2b591682603 100644 (file)
@@ -220,7 +220,8 @@ struct curve25519_public_key_t;
 #define END_OR_CONN_REASON_IO_ERROR       7 /* read/write error */
 #define END_OR_CONN_REASON_RESOURCE_LIMIT 8 /* sockets, buffers, etc */
 #define END_OR_CONN_REASON_PT_MISSING     9 /* PT failed or not available */
-#define END_OR_CONN_REASON_MISC           10
+#define END_OR_CONN_REASON_TLS_ERROR      10 /* Problem in TLS protocol */
+#define END_OR_CONN_REASON_MISC           11
 
 /* Reasons why we (or a remote OR) might close a stream. See tor-spec.txt for
  * documentation of these.  The values must match. */
index 7da7843cab86f1e0f91171c6e868572f49cc1cd9..708f43a68990244d1e295c7ac17df84fc66b7ec6 100644 (file)
@@ -244,6 +244,8 @@ orconn_end_reason_to_control_string(int r)
       return "IOERROR";
     case END_OR_CONN_REASON_RESOURCE_LIMIT:
       return "RESOURCELIMIT";
+    case END_OR_CONN_REASON_TLS_ERROR:
+      return "TLS_ERROR";
     case END_OR_CONN_REASON_MISC:
       return "MISC";
     case END_OR_CONN_REASON_PT_MISSING:
@@ -276,6 +278,8 @@ tls_error_to_orconn_end_reason(int e)
     case TOR_TLS_CLOSE:
     case TOR_TLS_DONE:
       return END_OR_CONN_REASON_DONE;
+    case TOR_TLS_ERROR_MISC:
+      return END_OR_CONN_REASON_TLS_ERROR;
     default:
       return END_OR_CONN_REASON_MISC;
   }