Refactor: Use SOCK_ERRNO to avoid some #ifdef _WIN32s

Fixes ticket 6302
This commit is contained in:
Nick Mathewson 2013-01-16 15:30:20 -05:00
parent 65e6e68981
commit 9bd811b337
2 changed files with 6 additions and 26 deletions

View File

@ -359,35 +359,19 @@ tls_log_errors(tor_tls_t *tls, int severity, int domain, const char *doing)
static int
tor_errno_to_tls_error(int e)
{
#if defined(_WIN32)
switch (e) {
case WSAECONNRESET: // most common
case SOCK_ERRNO(ECONNRESET): // most common
return TOR_TLS_ERROR_CONNRESET;
case WSAETIMEDOUT:
case SOCK_ERRNO(ETIMEDOUT):
return TOR_TLS_ERROR_TIMEOUT;
case WSAENETUNREACH:
case WSAEHOSTUNREACH:
case SOCK_ERRNO(EHOSTUNREACH):
case SOCK_ERRNO(ENETUNREACH):
return TOR_TLS_ERROR_NO_ROUTE;
case WSAECONNREFUSED:
case SOCK_ERRNO(ECONNREFUSED):
return TOR_TLS_ERROR_CONNREFUSED; // least common
default:
return TOR_TLS_ERROR_MISC;
}
#else
switch (e) {
case ECONNRESET: // most common
return TOR_TLS_ERROR_CONNRESET;
case ETIMEDOUT:
return TOR_TLS_ERROR_TIMEOUT;
case EHOSTUNREACH:
case ENETUNREACH:
return TOR_TLS_ERROR_NO_ROUTE;
case ECONNREFUSED:
return TOR_TLS_ERROR_CONNREFUSED; // least common
default:
return TOR_TLS_ERROR_MISC;
}
#endif
}
/** Given a TOR_TLS_* error code, return a string equivalent. */

View File

@ -1442,11 +1442,7 @@ connection_connect(connection_t *conn, const char *address,
* Warn if we do, and refuse to make the connection. */
static ratelim_t disablenet_violated = RATELIM_INIT(30*60);
char *m;
#ifdef _WIN32
*socket_error = WSAENETUNREACH;
#else
*socket_error = ENETUNREACH;
#endif
*socket_error = SOCK_ERRNO(ENETUNREACH);
if ((m = rate_limit_log(&disablenet_violated, approx_time()))) {
log_warn(LD_BUG, "Tried to open a socket with DisableNetwork set.%s", m);
tor_free(m);