3proxy/src
Vladimir Dubrovin 9f46558d0b Write to a peer that hung up while it still reads, on Windows
sockmap() took a hang-up on a socket it had data to write to for a peer
it could no longer write to. With poll() a hang-up comes once both sides
are shut down, so that held. WSAPoll reports one as soon as the peer has
half-closed, still reading, and a half-closed client got nothing on
Windows: the test added with the previous fix failed there.

The write is now tried, and a peer really gone makes it fail, which
ends the connection as before. WSAPoll keeps reporting the hang-up
whether the socket has room or not, so on Windows room is waited for
with select() first unless poll() reported it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:57:50 +03:00
..
libs fix wolfSSL, switch minimal/busybox to musl+wolfssl 2026-07-31 11:27:10 +03:00
plugins Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
3proxy_crypt.c wolfSSL support added 2026-07-13 20:24:51 +03:00
3proxy.c Threads pool added 2026-10-12 22:40:41 +03:00
3proxy.ico build rc file from res 2020-11-22 02:14:53 +03:00
3proxy.rc Copyright update 2021-07-02 11:50:33 +03:00
acl.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
auth.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
authradius.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
auto.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
base64.c Add outsize parameter to en64 2026-08-08 17:58:49 +03:00
common.c Threads pool added 2026-10-12 22:40:41 +03:00
conf.c Threads pool added 2026-10-12 22:40:41 +03:00
datatypes.c Threads pool added 2026-10-12 22:40:41 +03:00
dnspr.c Unify Linux namespace operations 2026-10-12 18:18:27 +03:00
ftp.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
ftppr.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
hash.c Fix warnings 2026-08-08 21:58:53 +03:00
hashtables.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
httpsrv.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
imapp.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
limiter.c Copyright update 2026-05-08 18:07:08 +03:00
log.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
Makefile initial import to git 2014-04-08 13:03:21 +04:00
Makefile.inc Reorganize service config parsing / main loop 2026-10-12 13:08:55 +03:00
mdhash.c fix wolfSSL build 2026-07-13 20:50:27 +03:00
mdhash.h wolfSSL support added 2026-07-13 20:24:51 +03:00
pcre.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
pcre.h Move PCRE/SSL to main code 2026-05-01 15:11:08 +03:00
plugins.c implement small http server for admin and testing 2026-08-25 17:21:33 +03:00
pop3p.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
proxy.c Free the HTTP proxy's request buffer while a connection waits 2026-10-13 12:21:23 +03:00
proxy.h Threads pool added 2026-10-12 22:40:41 +03:00
proxymain.c Enable auto mode splice by default 2026-10-12 23:08:18 +03:00
redirect.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
resolve.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
sem.c Change waiting loops to semaphores for child counters 2026-10-10 23:10:57 +03:00
smtpp.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
sockgetchar.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
sockmap.c Write to a peer that hung up while it still reads, on Windows 2026-10-13 12:57:50 +03:00
socks.c Unify Linux namespace operations 2026-10-12 18:18:27 +03:00
sql.c NOODBC inverted to WITH_ODBC 2026-05-08 20:30:14 +03:00
ssl.c Read TLS records ahead with OpenSSL 1.1.0 and later 2026-10-13 12:21:23 +03:00
ssl.h Read TLS records ahead with OpenSSL 1.1.0 and later 2026-10-13 12:21:23 +03:00
ssllib.c Read TLS records ahead with OpenSSL 1.1.0 and later 2026-10-13 12:21:23 +03:00
stringtable.c Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
structures.h Enable auto mode splice by default 2026-10-12 23:08:18 +03:00
tcppm.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
tlspr.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
transparent.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
udppm.c Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
udpsockmap.c Unify Linux namespace operations 2026-10-12 18:18:27 +03:00
version.h Update version files for 1.0.0 2026-08-22 12:13:00 +00:00
webadmin.c Threads pool added 2026-10-12 22:40:41 +03:00