diff --git a/src/network/socket_address.cpp b/src/network/socket_address.cpp index 3e36f3cad..6c7d86340 100644 --- a/src/network/socket_address.cpp +++ b/src/network/socket_address.cpp @@ -136,9 +136,20 @@ void SocketAddress::init(const std::string& str, uint16_t port_number, &res); if (status != 0) { +#ifdef WIN32 + wchar_t msgbuf[256] = {}; + DWORD flags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | + FORMAT_MESSAGE_MAX_WIDTH_MASK; + FormatMessage(flags, NULL, WSAGetLastError(), 0, msgbuf, + sizeof(msgbuf) / sizeof(wchar_t), NULL); Log::error("SocketAddress", "Error in getaddrinfo for " - " SocketAddress (str constructor) %s: %s", + "SocketAddress (str constructor) %s: %s", + str.c_str(), StringUtils::wideToUtf8(msgbuf).c_str()); +#else + Log::error("SocketAddress", "Error in getaddrinfo for " + "SocketAddress (str constructor) %s: %s", str.c_str(), gai_strerror(status)); +#endif return; } if (res == NULL)