tailscale/control/controlbase
David Anderson d5a7eabcd0 control/controlbase: enable asynchronous client handshaking.
With this change, the client can obtain the initial handshake message
separately from the rest of the handshake, for embedding into another
protocol. This enables things like RTT reduction by stuffing the
handshake initiation message into an HTTP header.

Similarly, the server API optionally accepts a pre-read Noise initiation
message, in addition to reading the message directly off a net.Conn.

Updates #3488

Signed-off-by: David Anderson <danderson@tailscale.com>
2022-01-17 23:52:27 +00:00
..
conn.go control/controlbase: enable asynchronous client handshaking. 2022-01-17 23:52:27 +00:00
conn_test.go control/controlbase: enable asynchronous client handshaking. 2022-01-17 23:52:27 +00:00
handshake.go control/controlbase: enable asynchronous client handshaking. 2022-01-17 23:52:27 +00:00
handshake_test.go control/controlbase: enable asynchronous client handshaking. 2022-01-17 23:52:27 +00:00
interop_test.go control/controlbase: enable asynchronous client handshaking. 2022-01-17 23:52:27 +00:00
messages.go control/controlbase: rename from control/noise. 2022-01-17 23:52:27 +00:00
noiseexplorer_test.go control/controlbase: rename from control/noise. 2022-01-17 23:52:27 +00:00