summaryrefslogtreecommitdiffstats
path: root/src/OSSupport/GetAddressInfoError.h
diff options
context:
space:
mode:
authorpeterbell10 <peterbell10@live.co.uk>2017-06-15 11:03:49 +0200
committerLukas Pioch <lukas@zgow.de>2017-06-15 11:03:49 +0200
commit035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1 (patch)
treeb6caede9a35093d3e59c57c8c8c7295dc1c8fbaf /src/OSSupport/GetAddressInfoError.h
parentAdded missing 1.12 packet changes (diff)
downloadcuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.gz
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.bz2
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.lz
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.xz
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.tar.zst
cuberite-035ecdc9e285ad2fd9ccf51e4ed2ac01b53dc3d1.zip
Diffstat (limited to 'src/OSSupport/GetAddressInfoError.h')
-rw-r--r--src/OSSupport/GetAddressInfoError.h29
1 files changed, 29 insertions, 0 deletions
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
+}
+