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
Maisem Ali 50b4b8b2c6 ipn/ipnlocal: make peerIPs return a sorted slice
Currently peerIPs doesn't do any sorting of the routes it returns. This
is typically fine, however imagine the case of an HA subnet router
failover. When a route R moves from peer A to peer B, the output of
peerIPs changes. This in turn causes all the deephash check inside
wgengine to fail as the hashed value of [R1, R2] is different than
the hashed value of [R2, R1]. When the hash check failes, it causes
wgengine to reconfigure all routes in the OS. This is especially
problematic for macOS and iOS where we use the NetworkExtension.

This commit makes it that the peerIPs are always sorted when returned,
thus making the hash be consistent as long as the list of routes remains
static.

Signed-off-by: Maisem Ali <maisem@tailscale.com>
2 years ago
..
ipnlocal ipn/ipnlocal: make peerIPs return a sorted slice 2 years ago
ipnserver all: use any instead of interface{} 2 years ago
ipnstate ipn/ipnstate: make status page more mobile-friendly 2 years ago
localapi cmd/tailscale: add id-token subcommand 2 years ago
policy ipn/policy: treat DNS service as interesting so it's not filtered out 3 years ago
store ipn/store: [TestNewStore] do not use an empty file 2 years ago
backend.go ipn: use key.NodePublic instead of tailcfg.NodeKey 3 years ago
doc.go Move Linux client & common packages into a public repo. 4 years ago
fake_test.go ipn{,/ipnlocal}, cmd/tailscale/cli: don't check pref reverts on initial up 3 years ago
handle.go ipn: another controlplane synonym 3 years ago
message.go ipn: don't log IPN messages that may contain an authkey. 3 years ago
message_test.go all: use any instead of interface{} 2 years ago
prefs.go all: use any instead of interface{} 2 years ago
prefs_clone.go wgengine/netstack: add an SSH server experiment 2 years ago
prefs_test.go cmd/tailscale/cli, ipn: move exit node IP parsing and validation from cli into prefs. 2 years ago
store.go ipn/store: add common package for instantiating ipn.StateStores 2 years ago