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
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>
3 weeks ago
..
art all: fix new lint warnings from bumping staticcheck 2 months ago
captivedetection net/captivedetection: set Timeout on net.Dialer (#13613) 1 month ago
connstats all: use Go 1.22 range-over-int 7 months ago
dns net/dns/resolver: update (*forwarder).forwardWithDestChan to always return an error unless it sends a response to responseChan 3 weeks ago
dnscache net/dnscache: don't fall back to an IPv6 dial if we don't have IPv6 1 month ago
dnsfallback {control,net}: close idle connections of custom transports 3 months ago
flowtrack net/flowtrack: fix, test String method 5 months ago
ipset go.mod: bump bart 4 months ago
ktimeout net/ktimeout: add a package to set TCP user timeout 9 months ago
memnet net/memnet: export the network name (#9111) 1 year ago
netaddr all: update copyright and license headers 2 years ago
netcheck net/netcheck: fix netcheck cli-triggered nil pointer deref (#13782) 3 weeks ago
neterror net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux (#7791) 2 years ago
netkernelconf ipn/{ipnlocal,localapi},net/netkernelconf,client/tailscale,cmd/containerboot: optionally enable UDP GRO forwarding for containers (#12410) 5 months ago
netknob all: update copyright and license headers 2 years ago
netmon all: fix new lint warnings from bumping staticcheck 2 months ago
netns net/netns: remove some logspam by avoiding logging parse errors due to unspecified addresses 3 months ago
netstat all: add test for package comments, fix, add comments as needed 4 months ago
netutil {ipn,net,tsnet}: use tsaddr helpers 1 month ago
packet wgengine/magicsock: actually use AF_PACKET socket for raw disco 2 months ago
ping net/ping: fix ICMP echo code field to 0 1 year ago
portmapper net/portmapper: don't treat 0.0.0.0 as a valid IP 1 month ago
proxymux all: cleanup unused code, part 1 (#10661) 11 months ago
routetable net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 6 months ago
socks5 net/socks5: support UDP 3 months ago
sockstats net/sockstats: quiet some log spam in release builds 3 weeks ago
speedtest all: update copyright and license headers 2 years ago
stun ci: enable checklocks workflow for specific packages 4 months ago
stunserver all: use Go 1.22 range-over-int 7 months ago
tcpinfo all: use Go 1.22 range-over-int 7 months ago
tlsdial cmd/tta, vnet: add host firewall, env var support, more tests 3 months ago
tsaddr net/tsaddr: add WithoutExitRoutes and IsExitRoute 1 month ago
tsdial {control,net}: close idle connections of custom transports 3 months ago
tshttpproxy all: use Go 1.22 range-over-int 7 months ago
tstun util/usermetrics: make usermetrics non-global 1 month ago
wsconn go.{mod,sum}: migrate from nhooyr.io/websocket to github.com/coder/websocket 3 months ago