aboutsummaryrefslogtreecommitdiff
path: root/.patch
diff options
context:
space:
mode:
Diffstat (limited to '.patch')
-rw-r--r--.patch/httplib/0001-mingw.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/.patch/httplib/0001-mingw.patch b/.patch/httplib/0001-mingw.patch
new file mode 100644
index 0000000000..fa3e53a88c
--- /dev/null
+++ b/.patch/httplib/0001-mingw.patch
@@ -0,0 +1,52 @@
+From e1a946ffb79022d38351a0623f819a5419965c3e Mon Sep 17 00:00:00 2001
+From: crueter <crueter@eden-emu.dev>
+Date: Fri, 24 Oct 2025 23:41:09 -0700
+Subject: [PATCH] [build] Fix MinGW missing GetAddrInfoExCancel definition
+
+MinGW does not define GetAddrInfoExCancel in its wstcpi whatever header,
+so to get around this we can just load it with GetProcAddress et al.
+
+Signed-off-by: crueter <crueter@eden-emu.dev>
+---
+ httplib.h | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/httplib.h b/httplib.h
+index e15ba44..90a76dc 100644
+--- a/httplib.h
++++ b/httplib.h
+@@ -203,11 +203,13 @@
+ #error Sorry, Visual Studio versions prior to 2015 are not supported
+ #endif
+
+-#pragma comment(lib, "ws2_32.lib")
+-
+ using ssize_t = __int64;
+ #endif // _MSC_VER
+
++#if defined(_MSC_VER) || defined(__MINGW32__)
++#pragma comment(lib, "ws2_32.lib")
++#endif
++
+ #ifndef S_ISREG
+ #define S_ISREG(m) (((m) & S_IFREG) == S_IFREG)
+ #endif // S_ISREG
+@@ -3557,7 +3559,15 @@ inline int getaddrinfo_with_timeout(const char *node, const char *service,
+ auto wait_result =
+ ::WaitForSingleObject(event, static_cast<DWORD>(timeout_sec * 1000));
+ if (wait_result == WAIT_TIMEOUT) {
++#ifdef __MINGW32__
++ typedef INT (WSAAPI *PFN_GETADDRINFOEXCANCEL)(HANDLE *CancelHandle);
++ auto wsdll = LoadLibraryW((wchar_t*) "ws2_32.lib");
++ PFN_GETADDRINFOEXCANCEL GetAddrInfoExCancel = (PFN_GETADDRINFOEXCANCEL) GetProcAddress(wsdll, "GetAddrInfoExCancel");
++
++ if (cancel_handle) { GetAddrInfoExCancel(&cancel_handle); }
++#else
+ if (cancel_handle) { ::GetAddrInfoExCancel(&cancel_handle); }
++#endif
+ ::CloseHandle(event);
+ return EAI_AGAIN;
+ }
+--
+2.51.0
+