You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/net/dns
Nick Hill c2144c44a3 net/dns/resolver: update (*forwarder).forwardWithDestChan to always return an error unless it sends a response to responseChan
We currently have two executions paths where (*forwarder).forwardWithDestChan
returns nil, rather than an error, without sending a DNS response to responseChan.

These paths are accompanied by a comment that reads:
// Returning an error will cause an internal retry, there is
// nothing we can do if parsing failed. Just drop the packet.
But it is not (or no longer longer) accurate: returning an error from forwardWithDestChan
does not currently cause a retry.

Moreover, although these paths are currently unreachable due to implementation details,
if (*forwarder).forwardWithDestChan were to return nil without sending a response to
responseChan, it would cause a deadlock at one call site and a panic at another.

Therefore, we update (*forwarder).forwardWithDestChan to return errors in those two paths
and remove comments that were no longer accurate and misleading.

Updates #cleanup
Updates #13571

Signed-off-by: Nick Hill <mykola.khyl@gmail.com>
1 month ago
..
publicdns net/dns/publicdns: remove additional information in DOH URL passed to IPv6 address generation for controlD. 4 months ago
recursive all: use Go 1.22 range-over-int 7 months ago
resolvconffile clientupdate, net/dns: fix some "tailsacle" typos 8 months ago
resolver net/dns/resolver: update (*forwarder).forwardWithDestChan to always return an error unless it sends a response to responseChan 1 month ago
config.go all: add test for package comments, fix, add comments as needed 4 months ago
debian_resolvconf.go all: update copyright and license headers 2 years ago
direct.go net/dns: ensure /etc/resolv.conf is world-readable even with a umask 5 months ago
direct_linux.go net/dns: updated gonotify dependency to v2 that supports closable context 3 months ago
direct_notlinux.go all: update copyright and license headers 2 years ago
direct_test.go clientupdate, net/dns: fix some "tailsacle" typos 8 months ago
direct_unix_test.go net/dns: ensure /etc/resolv.conf is world-readable even with a umask 5 months ago
flush_default.go all: update copyright and license headers 2 years ago
flush_windows.go cmd/tailscaled, net/dns, wgengine/router: start Windows child processes with DETACHED_PROCESS when I/O is being piped 5 months ago
ini.go all: update copyright and license headers 2 years ago
ini_test.go all: update copyright and license headers 2 years ago
manager.go cli: implement `tailscale dns status` (#13353) 3 months ago
manager_darwin.go net/dns: support GetBaseConfig on Darwin OSS tailscaled (#13351) 3 months ago
manager_default.go various: create a catch-all NRPT rule when "Override local DNS" is enabled on Windows 5 months ago
manager_freebsd.go various: create a catch-all NRPT rule when "Override local DNS" is enabled on Windows 5 months ago
manager_linux.go various: create a catch-all NRPT rule when "Override local DNS" is enabled on Windows 5 months ago
manager_linux_test.go net/dns: ensure /etc/resolv.conf is world-readable even with a umask 5 months ago
manager_openbsd.go various: create a catch-all NRPT rule when "Override local DNS" is enabled on Windows 5 months ago
manager_tcp_test.go net/dns, health: raise health warning for failing forwarded DNS queries (#12888) 4 months ago
manager_test.go net/dns: ensure multiple hosts with the same IP address are combined into a single HostEntry 5 months ago
manager_windows.go net/dns: disable DNS registration for Tailscale interface on Windows 3 months ago
manager_windows_test.go util/winutil/gp, net/dns: add package for Group Policy API 5 months ago
nm.go all: cleanup unused code, part 2 (#10670) 11 months ago
noop.go all: update copyright and license headers 2 years ago
nrpt_windows.go util/winutil/gp, net/dns: add package for Group Policy API 5 months ago
openresolv.go net/dns: log more info when openresolv commands fail 9 months ago
osconfig.go net/dns: fix IsZero and Equal methods on OSConfig 3 months ago
osconfig_test.go net/dns: fix IsZero and Equal methods on OSConfig 3 months ago
resolvconf-workaround.sh all: update copyright and license headers 2 years ago
resolvconf.go net/dns: properly detect newer debian resolvconf 1 year ago
resolvconfpath_default.go net/dns: overwrite /tmp/resolv.conf on gokrazy 1 year ago
resolvconfpath_gokrazy.go net/dns: overwrite /tmp/resolv.conf on gokrazy 1 year ago
resolvd.go all: update copyright and license headers 2 years ago
resolved.go health, all: remove health.Global, finish plumbing health.Tracker 7 months ago
utf.go all: update copyright and license headers 2 years ago
utf_test.go all: update copyright and license headers 2 years ago
wsl_windows.go net/dns: ensure /etc/resolv.conf is world-readable even with a umask 5 months ago