You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(control): carry runtime routes and hostname on every map request #663
After #662, every map request carries the last advertised endpoints. Runtime routes and hostname are still not carried the same way.
SetRoutableIPs and SetHostname send the new value once. The next SetDerpHomeRegion or SetEndpoints request, and the Hostinfo update after every reconnect, build from config.advertised_routes() and config.hostname instead. Control then reverts them to the start-up config.
Go builds every map request from one current copy of the node's state (c.hostinfo, c.endpoints; control/controlclient/direct.go at tailscale/tailscale 3bb8a906). The fix here is the same: keep the runtime routes and hostname in the carried state next to the endpoints, and build every request from it. CarriedNetInfo would then be better named CarriedNodeState.
Done when a SetRoutableIPs followed by a SetDerpHomeRegion sends the runtime routes in both requests, with a test that fails on main.
Activity
fix(control): send runtime routes and hostname on the reconnect re-re…