3proxy/doc/html
Vladimir Dubrovin d83a48fe18 Share one listening socket among services on one address
Services of one configuration on the same address, port, network
namespace and device now share one listener and its socket, all
accepting on it, instead of each binding its own: on Linux the second
bind failed unless SO_REUSEPORT was set. A listener keeps a list of the
services accepting on it; the first to start opens the socket under the
listener's open_mutex, as binding may take long, and the others use it
("Accepting connections, shared"). The socket is closed once the last of
them stops.

Such services must be of one type with the same -ol options: otherwise
the configuration is refused ("a service of another type listens
there", "a service with other socket options listens there").

mainclaim() now runs for every service, at startup too: it joins the
listener of its configuration for the address, takes over one of an
older configuration (one of its type first), or makes a new one, under
one hold of listener_mutex so that a listener found is not freed before
it is joined.

Services connecting back (-r) to one place share a pseudo-listener
without a socket, of any type. After a reload a client moves to one of
the newest services of its type on its listener with a slot free: 26 if
there is none of its type, 27 if none has a slot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:31:50 +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 Share one listening socket among services on one address 2026-10-15 12:31:50 +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