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/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>
2 years ago
..
conn.go control/controlbase: use less memory when idle (remove rxState.buf) 2 years ago
conn_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2 years ago
handshake.go control/controlbase: don't enforce a max protocol version at handshake time. 2 years ago
handshake_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2 years ago
interop_test.go control/controlbase: don't enforce a max protocol version at handshake time. 2 years ago
messages.go control/controlbase: make the protocol version number selectable. 2 years ago
noiseexplorer_test.go control/controlbase: rename from control/noise. 2 years ago