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/ipn/ipnlocal
Brad Fitzpatrick 9538e9f970 ipn/ipnlocal: keep internal map updated of latest Nodes post mutations
We have some flaky integration tests elsewhere that have no one place
to ask about the state of the world. This makes LocalBackend be that
place (as it's basically there anyway) but doesn't yet add the ForTest
accessor method.

This adds a LocalBackend.peers map[NodeID]NodeView that is
incrementally updated as mutations arrive. And then we start moving
away from using NetMap.Peers at runtime (UpdateStatus no longer uses
it now). And remove another copy of NodeView in the LocalBackend
nodeByAddr map. Change that to point into b.peers instead.

Future changes will then start streaming whole-node-granularity peer
change updates to WatchIPNBus clients, tracking statefully per client
what each has seen. This will get the GUI clients from receiving less
of a JSON storm of updates all the time.

Updates #1909

Change-Id: I14a976ca9f493bdf02ba7e6e05217363dcf422e5
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 years ago
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 3 years ago
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2 years ago
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2 years ago
c2n.go ipn/ipnlocal: add logging and locking to c2n /update (#9290) 2 years ago
c2n_pprof.go tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2 years ago
cert.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
cert_js.go ipn/{ipnlocal,localapi}: actually renew certs before expiry (#8731) 2 years ago
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
dnsconfig_test.go ipn/ipnlocal: keep internal map updated of latest Nodes post mutations 2 years ago
expiry.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
local.go ipn/ipnlocal: keep internal map updated of latest Nodes post mutations 2 years ago
local_test.go ipn/ipnlocal: keep internal map updated of latest Nodes post mutations 2 years ago
loglines_test.go tsd: add package with System type to unify subsystem init, discovery 3 years ago
network-lock.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
network-lock_test.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2 years ago
peerapi.go wgengine: remove SetDERPMap method from Engine interface 2 years ago
peerapi_h2c.go all: update copyright and license headers 3 years ago
peerapi_macios_ext.go all: update copyright and license headers 3 years ago
peerapi_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2 years ago
profiles.go ipn/ipnlocal: fix missing mutex usage for profileManager 2 years ago
profiles_notwindows.go ipn/ipnlocal: fix profile duplication 2 years ago
profiles_test.go types/logger: add AsJSON 2 years ago
profiles_windows.go ipn/ipnlocal: add more logging during profile migration 3 years ago
serve.go types/netmap: start phasing out Addresses, add GetAddresses method 2 years ago
serve_test.go ipn/ipnlocal: keep internal map updated of latest Nodes post mutations 2 years ago
ssh.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2 years ago
ssh_stub.go all: update copyright and license headers 3 years ago
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 3 years ago
state_test.go ipn/ipnlocal: fix deadlock in resetControlClientLocked 2 years ago