summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-06-26 10:59:59 -0400
committerNick Mathewson <nickm@torproject.org>2020-06-26 10:59:59 -0400
commite429ceb2667787750af070929d0e64cbc7a6dda4 (patch)
tree7ab6e2cbeb5856b0541464b9bdf5be872d98c3ef /src/core
parentd486c6cf74db6bce80689c17c7427a6e3a055f93 (diff)
downloadtor-e429ceb2667787750af070929d0e64cbc7a6dda4.tar.gz
tor-e429ceb2667787750af070929d0e64cbc7a6dda4.zip
Add a TLS_ERROR bootstrap failure reason.
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.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/or/or.h3
-rw-r--r--src/core/or/reasons.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/core/or/or.h b/src/core/or/or.h
index 5b35cbe7f1..8758a2ec6f 100644
--- a/src/core/or/or.h
+++ b/src/core/or/or.h
@@ -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. */
diff --git a/src/core/or/reasons.c b/src/core/or/reasons.c
index 7da7843cab..708f43a689 100644
--- a/src/core/or/reasons.c
+++ b/src/core/or/reasons.c
@@ -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;
}