3proxy/tests/cases
Vladimir Dubrovin ae27a5cf90 Apply the new configuration to UDP sessions and kept-alive requests
UDP sessions check for a reload in udpsockmap() as TCP connections do
in sockmap(): unless noforce, a session goes by the newest service on
its listener, re-authenticated as its client, or is dropped.

A request on a connection that outlives a reload, an HTTP one kept
alive, is authorized by clientauth(): it moves the connection to the
newest service on its listener first if a reload came since, then
authorizes as the service whose rules apply (PSRV). The proxy uses it
for every request, so a request of a user the new configuration
removed is answered 407 rather than authorized by the old rules and
cut while relayed. reattach() takes whether to authenticate: sockmap()
and udpsockmap() move and authenticate at once, clientauth() moves and
then authorizes the request.

A test case covers the drops: with one slot free in the new service one
of two downloads moves on and the other is cut (27; a service keeps one
of its maxconn slots for the next connection it accepts), and a proxy
download is cut when a socks service takes its port (26). The reload
case checks the kept-alive request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:46:20 +03:00
..
admin.py Tests: wait for the reload requested in the admin case 2026-10-11 10:26:02 +03:00
auto.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
counters.py Keep the values of numbered traffic counters across reloads 2026-10-13 19:05:59 +03:00
dnspr.py Fix dnspr for Windows 2026-08-26 16:28:27 +03:00
httpsrv_auth.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_files.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_keepalive.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_ops.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_parsing.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
httpsrv_proxypass.py support proxypass in web server 2026-08-27 17:57:51 +03:00
httpsrv_rules.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
ipv6.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
ktls.py splice() over kernel TLS 2026-10-14 18:50:02 +03:00
maxconn.py Change waiting loops to semaphores for child counters 2026-10-10 23:10:57 +03:00
parent_failover.py parent: support fraction and % syntaxis for weight; support fallbacks with 0 weight 2026-09-16 20:04:10 +03:00
parent_ports.py Take another local port when the one bound cannot reach the destination 2026-09-17 13:02:56 +03:00
parent_weights.py parent: support fraction and % syntaxis for weight; support fallbacks with 0 weight 2026-09-16 20:04:10 +03:00
pcre.py Fix rewrite and over-long header handling on Windows 2026-08-29 20:21:29 +03:00
portmap.py tests: run the half-close case on Windows again 2026-10-13 12:57:50 +03:00
proxy_http.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
reattach.py Apply the new configuration to UDP sessions and kept-alive requests 2026-10-15 00:46:20 +03:00
reload.py Apply the new configuration to UDP sessions and kept-alive requests 2026-10-15 00:46:20 +03:00
socks.py Fix: invalid hostname ACL handling in UDPASSOC 2026-10-01 16:57:36 +03:00
splice.py Make the automatic splice() mode's heuristics a service option 2026-10-14 19:02:23 +03:00
ssl.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
takeover.py Hand UDP sockets over on a reload too 2026-10-14 23:30:52 +03:00
timeouts.py per-service timeouts 2026-10-13 15:12:05 +03:00
tlspr.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00
transparent.py http server implemented, pcre support for hostnames in acls implemented 2026-08-27 14:34:27 +03:00