mirror of
https://github.com/3proxy/3proxy.git
synced 2026-10-15 16:15:49 +08:00
When the client shuts down its sending side, sockmap() shuts down the server's in turn, and once the server has answered and closed, poll() reports a hang-up on its socket. A socket sockmap() had nothing to ask of at that moment, its buffer being full for a slow client, was still polled, and a hang-up there ended both directions: whatever of the answer was still unread in the kernel was dropped and the client got an end of stream in the middle of it, megabytes short with large answers. A hang-up on such a socket now only marks it: what is left is read once the buffer has room, up to the end of the stream as usual. Errors still end the connection. Since poll() reports a hang-up whatever is asked, the socket is left out of poll() while nothing is asked of it. The same holds for the client's side, for an upload cut short after the server half-closes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| admin.py | ||
| auto.py | ||
| dnspr.py | ||
| httpsrv_auth.py | ||
| httpsrv_files.py | ||
| httpsrv_keepalive.py | ||
| httpsrv_ops.py | ||
| httpsrv_parsing.py | ||
| httpsrv_proxypass.py | ||
| httpsrv_rules.py | ||
| ipv6.py | ||
| maxconn.py | ||
| parent_failover.py | ||
| parent_ports.py | ||
| parent_weights.py | ||
| pcre.py | ||
| portmap.py | ||
| proxy_http.py | ||
| socks.py | ||
| ssl.py | ||
| tlspr.py | ||
| transparent.py | ||