3proxy/man
Vladimir Dubrovin 43f40569d4 Sockets closed without SO_LINGER
Client, outgoing and FTP data sockets, and the inetd socket of a
standalone service, were given SO_LINGER, the client's for the long
string timeout (60 seconds by default), the outgoing one's for the
LINGER timeout. It kept nothing from being lost: without it the system
sends what is queued after the close all the same, and the time running
out reset the connection, losing what was still queued. All it did was
make close() wait for the peer to acknowledge the data, holding the
connection's thread and maxconn slot meanwhile, and, for clients served
on an event loop, every client of the loop: with one loop it was idle a
quarter of the time in a benchmark of many short exchanges.

The LINGER timeout keeps its use: how long a half-closed connection
waits for the rest of its data, and how long httpsrv reads what is left
of a request before closing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 01:00:48 +03:00
..
3proxy_crypt.8 Copyright update 2026-05-08 18:07:08 +03:00
3proxy.8 Share one listening socket among services on one address 2026-10-15 12:31:50 +03:00
3proxy.cfg.5 Sockets closed without SO_LINGER 2026-10-25 01:00:48 +03:00
ftppr.8 Copyright update 2026-05-08 18:07:08 +03:00
imapp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
pop3p.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
proxy.8 Copyright update 2026-05-08 18:07:08 +03:00
smtpp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
socks.8 Copyright update 2026-05-08 18:07:08 +03:00
tcppm.8 Copyright update 2026-05-08 18:07:08 +03:00
tlspr.8 Fix cmake build 2026-07-22 16:23:11 +03:00
udppm.8 Copyright update 2026-05-08 18:07:08 +03:00