From 035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1 Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Thu, 15 Jun 2017 10:03:49 +0100 Subject: Replace evdns with getaddrinfo and getnameinfo (#3766) --- src/OSSupport/GetAddressInfoError.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/OSSupport/GetAddressInfoError.h (limited to 'src/OSSupport/GetAddressInfoError.h') diff --git a/src/OSSupport/GetAddressInfoError.h b/src/OSSupport/GetAddressInfoError.h new file mode 100644 index 000000000..43869fb63 --- /dev/null +++ b/src/OSSupport/GetAddressInfoError.h @@ -0,0 +1,29 @@ +#pragma once + + + +/** Returns the readable form of a getaddressinfo type error code */ +inline AString ErrorString(int a_ErrorCode) +{ + // Note gai_strerror is not threadsafe on windows + #ifdef _WIN32 + char ErrorStr[GAI_STRERROR_BUFFER_SIZE + 1]; + + int MsgLen = FormatMessageA( + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS | + FORMAT_MESSAGE_MAX_WIDTH_MASK, + nullptr, + a_ErrorCode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + ErrorStr, + sizeof(ErrorStr) - 1, + nullptr + ); + + return AString(ErrorStr, MsgLen); + #else + return gai_strerror(a_ErrorCode); + #endif +} + -- cgit v1.2.3