diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/tortls.c | 20 | ||||
-rw-r--r-- | src/common/tortls.h | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c index 4b46f9d9d2..5b902c9e9a 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 3a58cc2795..d30a154fa2 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, |