tailscale/control/controlbase
David Anderson f570372b4d control/controlbase: don't enforce a max protocol version at handshake time.
Doing so makes development unpleasant, because we have to first break the
client by bumping to a version the control server rejects, then upgrade
the control server to make it accept the new version.

This strict rejection at handshake time is only necessary if we want to
blocklist some vulnerable protocol versions in the future. So, switch
to a default-permissive stance: until we have such a version that we
have to eagerly block early, we'll accept whatever version the client
presents, and leave it to the user of controlbase.Conn to make decisions
based on that version.

Noise still enforces that the client and server *agree* on what protocol
version is being used, and the control server still has the option to
finish the handshake and then hang up with an in-noise error, rather
than abort at the handshake level.

Updates #3488

Signed-off-by: David Anderson <danderson@tailscale.com>
2022-04-07 17:55:29 -07:00
..
conn_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2022-04-07 17:55:29 -07:00
conn.go control/controlbase: use less memory when idle (remove rxState.buf) 2022-03-21 17:47:50 -07:00
handshake_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2022-04-07 17:55:29 -07:00
handshake.go control/controlbase: don't enforce a max protocol version at handshake time. 2022-04-07 17:55:29 -07:00
interop_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2022-04-07 17:55:29 -07:00
messages.go control/controlbase: make the protocol version number selectable. 2022-04-07 13:25:28 -07:00
noiseexplorer_test.go control/controlbase: rename from control/noise. 2022-01-17 23:52:27 +00:00