3proxy/tests/cases
Vladimir Dubrovin d5e78a0900 resolver: the system's name servers and hosts file by default
Without nserver (or fakeresolve) names were resolved by the C library.
3proxy's own resolver is now the default, with the system's name
servers: up to 3 from /etc/resolv.conf, on Windows from the registry
(set for the system, set for an interface with an address, Tcpip6
interfaces, then those DHCP gave). With none found, the C library as
before. nserver takes up to 3 as well (MAXNSERVERS), a fourth is
warned about.

The name servers in force belong to the process, not a configuration:
nserver lines are kept aside while a configuration is read and replace
them only once it is committed, so a reload resolves with those in
force until then. Resolutions and dnspr read a copy of them.

The system's are read at start, before the configuration and a chroot
in it, and are in force while it is read, so its host names resolve
with them; read again at a commit, and checked every 5 seconds from
the main loop while the default is in force. What cannot be read then
(within a chroot) stays as last read.

The hosts file, read with them, is imported into tables of its own
while the default is in force: its first address of a family for a
name. A name is looked up as one nsrecord made first, then the hosts
file, then the name cache, then name servers. A changed file replaces
what was imported. No name cache is made for it: without nscache
nothing is cached, as before.

The name cache's keys are host names of any case now: DNS names are.

Tests: sysdns, a name of the hosts file answered by dnspr without
nserver, in any case, and not with one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:49:21 +03:00
..
admin.py Name the HTTPSRV service in the string table 2026-10-15 15:36:13 +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 tests: parent_ports tells an ephemeral port from the window by several 2026-10-18 12:58:43 +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_headers.py proxy: request line logged up to 4 KB, added headers written in place 2026-10-19 11:20:45 +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 connect back: a replaced -r service stops waiting at the reload 2026-10-19 16:28:02 +03:00
reload.py tests: reload cases that hold on slow runners 2026-10-18 11:25:07 +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
sysdns.py resolver: the system's name servers and hosts file by default 2026-10-20 18:49:21 +03:00
takeover.py tests: reload cases that hold on slow runners 2026-10-18 11:25:07 +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
udploop.py dnspr: only the answer to the query asked is relayed, or kept 2026-10-18 17:06:42 +03:00
unixsock.py Unix sockets: remove on closing only the file this socket bound 2026-10-18 12:38:11 +03:00