diff options
author | Kurt Roeckx <kurt@roeckx.be> | 2016-02-04 15:20:26 +0100 |
---|---|---|
committer | Kurt Roeckx <kurt@roeckx.be> | 2016-02-04 16:05:59 +0100 |
commit | c86d1f19fc69adacdd8d5955193330e18a0c7ebb (patch) | |
tree | 0cdc4f382ed3b3d3cd702610a264fddef78282d6 | |
parent | df057ea6c8a20e4babc047689507dfafde59ffd6 (diff) |
Use WSAGetLastError() on windows
Windows doesn't have h_error or hstrerror()
Reviewed-by: Richard Levitte <levitte@openssl.org>
MR: #1848
-rw-r--r-- | crypto/bio/b_addr.c | 8 | ||||
-rw-r--r-- | crypto/err/err.c | 1 | ||||
-rw-r--r-- | include/openssl/err.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/crypto/bio/b_addr.c b/crypto/bio/b_addr.c index 8f94fe8ffb..61714e5602 100644 --- a/crypto/bio/b_addr.c +++ b/crypto/bio/b_addr.c @@ -715,8 +715,12 @@ int BIO_lookup(const char *host, const char *service, he = gethostbyname(host); if (he == NULL) { +#ifndef OPENSSL_SYS_WINDOWS BIOerr(BIO_F_BIO_LOOKUP, ERR_R_SYS_LIB); ERR_add_error_data(1, hstrerror(h_errno)); +#else + SYSerr(SYS_F_GETHOSTBYNAME, WSAGetLastError()); +#endif ret = 0; goto err; } @@ -747,8 +751,12 @@ int BIO_lookup(const char *host, const char *service, se = getservbyname(service, proto); if (se == NULL) { +#ifndef OPENSSL_SYS_WINDOWS BIOerr(BIO_F_BIO_LOOKUP, ERR_R_SYS_LIB); ERR_add_error_data(1, hstrerror(h_errno)); +#else + SYSerr(SYS_F_GETSERVBYNAME, WSAGetLastError()); +#endif goto err; } } else { diff --git a/crypto/err/err.c b/crypto/err/err.c index 6cb582debe..64f8adc46d 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -178,6 +178,7 @@ static ERR_STRING_DATA ERR_str_functs[] = { {ERR_PACK(0, SYS_F_SETSOCKOPT, 0), "setsockopt"}, {ERR_PACK(0, SYS_F_GETSOCKOPT, 0), "getsockopt"}, {ERR_PACK(0, SYS_F_GETSOCKNAME, 0), "getsockname"}, + {ERR_PACK(0, SYS_F_GETHOSTBYNAME, 0), "gethostbyname"}, {0, NULL}, }; diff --git a/include/openssl/err.h b/include/openssl/err.h index 370763c35f..8baf6b7a13 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -262,6 +262,7 @@ typedef struct err_state_st { # define SYS_F_SETSOCKOPT 14 # define SYS_F_GETSOCKOPT 15 # define SYS_F_GETSOCKNAME 16 +# define SYS_F_GETHOSTBYNAME 17 /* reasons */ # define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ |