wgengine/magicsock: add facilities to support multiple disco keys (#20927)
Instead of accessing the key and string directly, put it behind a method to make it easier to use that as a proxy when we add multiple keys (control and TSMP origin). Instead of only updating a single origin for disco keys, teach peermap how to work with multiple disco key sources so a key can originate from either control or TSMP. This sets the work up for switching dynamically between disco keys later. As of this commit, the keys still arrive for the most part via the controlClient, but this commit sets us up for: - Switching dynamically between received keys. - Route TSMP keys directly into magicsock, not via controlClient. - Potentially revert controlClient to the state before any TSMP changes, making it single threaded. - Use switching keys as trigger for optimistic WG handshakes, instead of tearing down the full connection and setting it up again. Updates #20494 Signed-off-by: Claus Lensbøl <claus@tailscale.com>
C
Claus Lensbøl committed
da1fc4fc8c1be2a62fbebda7ff9285d00cd46fd3
Parent: 65d2226
Committed by GitHub <noreply@github.com>
on 8/25/2026, 1:55:48 PM