3proxy/doc/html
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
..
devel Pre-allocate client/server/tmp/etc buffers with client structure 2026-10-12 17:19:55 +03:00
man5 resolver: the system's name servers and hosts file by default 2026-10-20 18:49:21 +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