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
Andrew Dunham 286c6ce27c
net/dns/resolver: race UDP and TCP queries (#9544)
Instead of just falling back to making a TCP query to an upstream DNS
server when the UDP query returns a truncated query, also start a TCP
query in parallel with the UDP query after a given race timeout. This
ensures that if the upstream DNS server does not reply over UDP (or if
the response packet is blocked, or there's an error), we can still make
queries if the server replies to TCP queries.

This also adds a new package, util/race, to contain the logic required for
racing two different functions and returning the first non-error answer.

Updates tailscale/corp#14809

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I4311702016c1093b1beaa31b135da1def6d86316
9 months ago
..
art net/art: allow non-pointers as values 11 months ago
connstats net/connstats: exclude traffic with internal Tailscale service (#7904) 1 year ago
dns net/dns/resolver: race UDP and TCP queries (#9544) 9 months ago
dnscache tstest: prepare for Clock API changes 12 months ago
dnsfallback net/dnsfallback: remove net/dnsfallback go:generate line 9 months ago
flowtrack all: update copyright and license headers 1 year ago
interfaces net/tsdial: be smarter about when to close SystemDial conns 10 months ago
memnet net/memnet: export the network name (#9111) 10 months ago
netaddr all: update copyright and license headers 1 year ago
netcheck net/netcheck,wgengine/magicsock: reduce coupling between netcheck and magicsock 11 months ago
neterror net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux (#7791) 1 year ago
netknob all: update copyright and license headers 1 year ago
netmon net/netmon: log when the gateway/self IP changes 10 months ago
netns net/{interfaces,netmon}: remove "interesting", EqualFiltered API 10 months ago
netstat net/{netns,netstat}: use new x/sys/cpu.IsBigEndian 1 year ago
netutil cmd/tailscale: refactor shared utility methods 11 months ago
packet net/packet: implement methods for rewriting v6 addresses 9 months ago
ping net/ping: fix ICMP echo code field to 0 10 months ago
portmapper net/portmapper: fix invalid UPnP metric name 9 months ago
proxymux all: update copyright and license headers 1 year ago
routetable net/routetable: include unknown flags in the routetable doctor output 1 year ago
socks5 net/socks5: add password auth support 1 year ago
sockstats net/dns: retry forwarder requests over TCP 9 months ago
speedtest all: update copyright and license headers 1 year ago
stun wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 1 year ago
tcpinfo net/tcpinfo: add package to allow fetching TCP information 1 year ago
tlsdial cmd/tailscale/cli: make netcheck run even if machine lacks TLS certs 10 months ago
tsaddr types/netmap: remove NetworkMap.{Addresses,MachineStatus} 10 months ago
tsdial types/netmap: remove NetworkMap.{Addresses,MachineStatus} 10 months ago
tshttpproxy net/tshttpproxy: don't proxy through ourselves 1 year ago
tstun net/tstun: remove unused function DefaultMTU() 9 months ago
wsconn net/wsconn: accept a remote addr string and plumb it through 10 months ago