diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-11-07 16:37:08 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-11-07 16:37:08 +0000 |
commit | 0e993e6008aa0c0c5fc932bc0b84a46a9c681315 (patch) | |
tree | 735bbed65c5b59e3c40939e8c821be8925ca8192 /src | |
parent | 7b826f8fe47f20d784f42bb3f04c4597635c801f (diff) | |
download | tor-0e993e6008aa0c0c5fc932bc0b84a46a9c681315.tar tor-0e993e6008aa0c0c5fc932bc0b84a46a9c681315.tar.gz |
r16523@catbus: nickm | 2007-11-07 11:35:49 -0500
Improve "tls error. breaking" message a little.
svn:r12411
Diffstat (limited to 'src')
-rw-r--r-- | src/common/tortls.c | 20 | ||||
-rw-r--r-- | src/common/tortls.h | 2 | ||||
-rw-r--r-- | src/or/connection.c | 3 |
3 files changed, 24 insertions, 1 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c index 4b46f9d9d..5b902c9e9 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -145,6 +145,26 @@ tor_errno_to_tls_error(int e) #endif } +/** DOCDOC */ +const char * +tor_tls_err_to_string(int err) +{ + if (err >= 0) + return "[Not an error.]"; + switch (err) { + case TOR_TLS_ERROR_MISC: return "misc error"; + case TOR_TLS_ERROR_IO: return "unexpected close"; + case TOR_TLS_ERROR_CONNREFUSED: return "connection refused"; + case TOR_TLS_ERROR_CONNRESET: return "connection reset"; + case TOR_TLS_ERROR_NO_ROUTE: return "host unreachable"; + case TOR_TLS_ERROR_TIMEOUT: return "connection timed out"; + case TOR_TLS_CLOSE: return "closed"; + case TOR_TLS_WANTREAD: return "want to read"; + case TOR_TLS_WANTWRITE: return "want to write"; + default: return "(unknown error code)"; + } +} + #define CATCH_SYSCALL 1 #define CATCH_ZERO 2 diff --git a/src/common/tortls.h b/src/common/tortls.h index 3a58cc279..d30a154fa 100644 --- a/src/common/tortls.h +++ b/src/common/tortls.h @@ -21,6 +21,7 @@ typedef struct tor_tls_t tor_tls_t; /* Possible return values for most tor_tls_* functions. */ #define _MIN_TOR_TLS_ERROR_VAL -9 #define TOR_TLS_ERROR_MISC -9 +/* Rename to unexpected close or something. XXX020 */ #define TOR_TLS_ERROR_IO -8 #define TOR_TLS_ERROR_CONNREFUSED -7 #define TOR_TLS_ERROR_CONNRESET -6 @@ -45,6 +46,7 @@ typedef struct tor_tls_t tor_tls_t; #define TOR_TLS_RANDOM_LEN 32 #define TOR_TLS_IS_ERROR(rv) ((rv) < TOR_TLS_CLOSE) +const char *tor_tls_err_to_string(int err); void tor_tls_free_all(void); int tor_tls_context_new(crypto_pk_env_t *rsa, diff --git a/src/or/connection.c b/src/or/connection.c index 382802e3f..0dd2f9e43 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1917,7 +1917,8 @@ connection_read_to_buf(connection_t *conn, int *max_to_read) conn->address); return result; CASE_TOR_TLS_ERROR_ANY: - log_info(LD_NET,"tls error. breaking (nickname %s, address %s).", + log_info(LD_NET,"tls error [%s]. breaking (nickname %s, address %s).", + tor_tls_err_to_string(result), or_conn->nickname ? or_conn->nickname : "not set", conn->address); return result; |