tailscale/net/dns
Andrew Dunham 3f4d51c588 net/dns: don't send on closed channel when message too large
Previously, if a DNS-over-TCP message was received while there were
existing queries in-flight, and it was over the size limit, we'd close
the 'responses' channel. This would cause those in-flight queries to
send on the closed channel and panic.

Instead, don't close the channel at all and rely on s.ctx being
canceled, which will ensure that in-flight queries don't hang.

Fixes #6725

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I8267728ac37ed7ae38ddd09ce2633a5824320097
2022-12-13 15:54:17 -05:00
..
publicdns net/dns/publicdns: permit more NextDNS profile bits in its IPv6 suffix 2022-09-29 12:23:38 -07:00
resolvconffile all: use strs.CutPrefix and strs.CutSuffix more 2022-11-21 14:32:16 -08:00
resolver all: use strs.CutPrefix and strs.CutSuffix more 2022-11-21 14:32:16 -08:00
config.go net/dns/{publicdns,resolver}: add NextDNS DoH support 2022-09-08 12:50:32 -07:00
debian_resolvconf.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
direct.go net/dns: add a health warning when Linux /etc/resolv.conf is overwritten 2022-11-13 08:00:27 -08:00
direct_linux.go net/dns: make "direct" mode on Linux warn on resolv.conf fights 2022-11-12 22:19:13 -08:00
direct_notlinux.go net/dns: make "direct" mode on Linux warn on resolv.conf fights 2022-11-12 22:19:13 -08:00
direct_test.go all: convert more code to use net/netip directly 2022-07-25 21:53:49 -07:00
flush_default.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
flush_windows.go wgengine: flush DNS cache after major link change. 2021-09-19 22:58:53 -07:00
ini.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
ini_test.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
manager.go net/dns: don't send on closed channel when message too large 2022-12-13 15:54:17 -05:00
manager_darwin.go net/dns: getting base DNS config is not supported on macOS 2022-10-30 08:57:33 +00:00
manager_default.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
manager_freebsd.go refactor: move from io/ioutil to io and os packages 2022-09-15 21:45:53 -07:00
manager_linux.go net/dns: [linux] log and add metric for dnsMode 2022-12-01 19:57:08 +05:00
manager_linux_test.go net/dns: print systemd-resolved ResolvConfMode 2022-10-19 11:25:36 -04:00
manager_openbsd.go net/dns: teach OpenBSD's manager to talk to resolvd(8). (#2789) 2022-01-11 08:45:50 -08:00
manager_tcp_test.go net/dns: don't send on closed channel when message too large 2022-12-13 15:54:17 -05:00
manager_test.go net/dns, types/dnstypes: update some comments, tests for DoH 2022-09-08 17:16:13 -07:00
manager_windows.go net/dns: retry overwriting hosts file on Windows 2022-11-23 11:36:50 -05:00
manager_windows_test.go net/dns: change windows DNS manager to use pointer receiver 2022-11-21 15:46:51 -06:00
nm.go util/endian: delete package; use updated josharian/native instead 2022-12-12 20:12:45 -08:00
noop.go net/dns: return error from NewOSManager, use it to initialize NM. 2021-04-12 15:51:37 -07:00
nrpt_windows.go all: fix spelling mistakes 2022-09-29 13:36:13 -07:00
openresolv.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
osconfig.go net/dns: format OSConfig correctly with no pointers (#5766) 2022-09-27 19:30:39 -04:00
osconfig_test.go net/dns: format OSConfig correctly with no pointers (#5766) 2022-09-27 19:30:39 -04:00
resolvconf-workaround.sh net/dns: also include 'tail' and 'base' files when fixing up resolv.conf. 2021-04-10 23:01:11 -07:00
resolvconf.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
resolvd.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
resolved.go all: remove old +build tags 2022-11-04 07:25:42 -07:00
utf.go net/dns: detect and decode UTF-16 from wsl.exe earlier. 2021-11-30 13:10:18 -08:00
utf_test.go net/dns: detect and decode UTF-16 from wsl.exe earlier. 2021-11-30 13:10:18 -08:00
wsl_windows.go net/dns: fix checking for wrapped error when attempting to read wsl.conf for Windows WSL2 2021-11-30 15:36:39 -07:00