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