From ab38e6cebb7765e1fe0ce846e2a30deab285e7d2 Mon Sep 17 00:00:00 2001
From: Monster Iestyn <iestynjealous@ntlworld.com>
Date: Sat, 13 Oct 2018 20:44:01 +0100
Subject: [PATCH] Creating a quick get_WSAErrorStr function to act as a wrapper
 for FormatMessageA so we can string-ify Winsock errors properly

Untested!
---
 src/i_tcp.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/i_tcp.c b/src/i_tcp.c
index 6488e98455..9febd56f01 100644
--- a/src/i_tcp.c
+++ b/src/i_tcp.c
@@ -262,6 +262,28 @@ static void wattcp_outch(char s)
 }
 #endif
 
+#ifdef USE_WINSOCK
+// stupid microsoft makes things complicated
+static inline char *get_WSAErrorStr(int e)
+{
+	char *buf = NULL;
+
+	FormatMessageA(
+		FORMAT_MESSAGE_ALLOCATE_BUFFER |
+		FORMAT_MESSAGE_FROM_SYSTEM |
+		FORMAT_MESSAGE_IGNORE_INSERTS,
+		NULL,
+		(DWORD)e,
+		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+		(LPTSTR)&buf,
+		0, NULL);
+
+	return buf;
+}
+#undef strerror
+#define strerror get_WSAErrorStr
+#endif
+
 #ifdef USE_WINSOCK2
 #define inet_ntop inet_ntopA
 #define HAVE_NTOP
-- 
GitLab