From d13be1b439f58949018f13ee1b1d5c258b6b24d9 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Wed, 26 Aug 2026 16:40:31 +0300 Subject: [PATCH] Return Windows behavior for socket copy --- CMakeLists.txt | 3 +++ Makefile.msvc | 2 +- Makefile.win | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 632dd89..a567b9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,6 +115,9 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) if(WIN32) # Windows-specific configuration add_compile_definitions( + # Windows does not take a recv and a send on one socket from two + # threads, so a UDP service answers from a socket of its own + NO_SHARE_UDP_SOCKET WIN32 _WIN32 _MBCS diff --git a/Makefile.msvc b/Makefile.msvc index fa04294..cae7ce5 100644 --- a/Makefile.msvc +++ b/Makefile.msvc @@ -18,7 +18,7 @@ SSL_LIBS = wolfssl.lib SSL_DEFS = /D "WITH_SSL" SSL_LIBS = libcrypto.lib libssl.lib !ENDIF -CFLAGS = /D "WITH_HTTPSRV" /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" $(SSL_DEFS) /D "WITH_PCRE" /D "WITH_ODBC" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /Fp"proxy.pch" /FD /c $(BUILDDATE) $(VERSION) +CFLAGS = /D "WITH_HTTPSRV" /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" $(SSL_DEFS) /D "WITH_PCRE" /D "WITH_ODBC" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "NO_SHARE_UDP_SOCKET" /Fp"proxy.pch" /FD /c $(BUILDDATE) $(VERSION) COUT = /Fo LN = link LDFLAGS = /nologo /subsystem:console /incremental:no diff --git a/Makefile.win b/Makefile.win index 8d7ba30..065cb77 100644 --- a/Makefile.win +++ b/Makefile.win @@ -11,6 +11,9 @@ CRYPT_PREFIX ?= $(PREFIX) CC ?= gcc CFLAGS ?= -O3 -flto CFLAGS += -fno-strict-aliasing -c -mthreads -DWITH_WSAPOLL -DWITH_ODBC +# Windows does not take a recv and a send on one socket from two threads, +# so a UDP service answers from a socket of its own +CFLAGS += -DNO_SHARE_UDP_SOCKET COUT = -o LN ?= $(CC) LDFLAGS ?= -O3 -flto