mirror of
https://github.com/3proxy/3proxy.git
synced 2026-11-05 09:25:49 +08:00
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> |
||
|---|---|---|
| .. | ||
| 3proxy_crypt.8 | ||
| 3proxy.8 | ||
| 3proxy.cfg.5 | ||
| ftppr.8 | ||
| imapp.8 | ||
| pop3p.8 | ||
| proxy.8 | ||
| smtpp.8 | ||
| socks.8 | ||
| tcppm.8 | ||
| tlspr.8 | ||
| udppm.8 | ||