From f0b8de9e244293762203c4d9935284bb1489be62 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sun, 9 Aug 2020 02:13:57 +0000
Subject: [PATCH] socket_strerror() needs to auto-correct for WinSock error
 ranges.

---
 src/xpdev/sockwrap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/xpdev/sockwrap.c b/src/xpdev/sockwrap.c
index 2f401cd539..abc1670cb9 100644
--- a/src/xpdev/sockwrap.c
+++ b/src/xpdev/sockwrap.c
@@ -507,6 +507,8 @@ DLLEXPORT char* socket_strerror(int error_number, char* buf, size_t buflen)
 #if defined(_WINSOCKAPI_)
 	strncpy(buf, "Unknown error", buflen);
 	buf[buflen - 1] = 0;
+	if(error_number > 0 && error_number < WSABASEERR)
+		error_number += WSABASEERR;
 	FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK,	// dwFlags
 		NULL,			// lpSource
 		error_number,	// dwMessageId
-- 
GitLab