3proxy/doc/html
Vladimir Dubrovin 3520e6e7cf Hand listening sockets over on a reload
A service's TCP listening socket is kept as a listener: when a reload
commits, before the old services are told to stop, each new service
takes over the listener of an older configuration's service on the same
address, port, network namespace and device with the same -ol options.
It skips socket() and bind(), calling only listen() again for its own
backlog, and logs "Accepting connections, taken over". The old service
stops accepting at its next poll and lets go of the socket; whoever
lets go last closes it, unlinking a Unix socket's path.

So a service staying where it was no longer leaves a gap: before, the
old one closed its socket and the new one opened another, and a
connection queued on the old socket was reset. UDP services, whose
clients read from the service's socket, and two services of the same
configuration on one address keep their own sockets as before.

A test case makes requests nonstop through three reloads and wants none
refused or reset; against the build before this, connections were
reset. The reload case no longer waits out the switch. SIGUSR1 in
3proxy(8) describes how a reload behaves now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:14:04 +03:00
..
devel Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
man5 Make the automatic splice() mode's heuristics a service option 2026-10-14 19:02:23 +03:00
man8 Hand listening sockets over on a reload 2026-10-14 22:14:04 +03:00
plugins Transparent moved to main code (TransparentPlugin removed), BSD pf support added 2026-08-26 14:34:44 +03:00
faqe.html make html formatting compatible with .md 2026-08-01 11:47:50 +03:00
faqr.html make html formatting compatible with .md 2026-08-01 11:47:50 +03:00
highload.html highload.html: kernel TLS, splice() heuristics, grace delay by traffic 2026-10-14 19:14:46 +03:00
howtoe.html Document that an IPv6 nserver address needs square brackets 2026-09-16 15:04:08 +03:00
howtor.html Document that an IPv6 nserver address needs square brackets 2026-09-16 15:04:08 +03:00
index.html Update HTML documentation from man pages 2026-08-22 11:28:42 +00:00
securityen.html Fix MitM for MacOS clients (openssl only) 2026-08-26 11:54:04 +03:00