3proxy/man
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
..
3proxy_crypt.8 Copyright update 2026-05-08 18:07:08 +03:00
3proxy.8 Share one listening socket among services on one address 2026-10-15 12:31:50 +03:00
3proxy.cfg.5 resolver: the system's name servers and hosts file by default 2026-10-20 18:49:21 +03:00
ftppr.8 Copyright update 2026-05-08 18:07:08 +03:00
imapp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
pop3p.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
proxy.8 Copyright update 2026-05-08 18:07:08 +03:00
smtpp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
socks.8 Copyright update 2026-05-08 18:07:08 +03:00
tcppm.8 Copyright update 2026-05-08 18:07:08 +03:00
tlspr.8 Fix cmake build 2026-07-22 16:23:11 +03:00
udppm.8 Copyright update 2026-05-08 18:07:08 +03:00