Module handshake

Module handshake 

Source
Expand description

The pure server-to-client handshake sequence.

prelude and completion are the lifecycle frames that bracket the connection’s first view: crypto and codec setup before it, ServerSync and ServerConfig after it. The view in between is whatever the shard pushed onto this connection’s queue, so there is exactly one rendering path in the runtime and the handshake is not a second one.

The order is authoritative, traced to Murmur (R1): REF: references/mumble/src/murmur/Messages.cpp : Server::msgAuthenticate - CryptSetup, CodecVersion, ChannelState (root first, parents before children), UserState(self), UserState(others), ServerSync, ServerConfig. REF: references/mumble/src/murmur/Server.cpp : Server::encrypted - the server’s own Version goes out as soon as TLS completes, BEFORE Authenticate; it is therefore server_version and not part of this sequence.

Modules§

perm
Effective-permission bits, as the Mumble client understands them.

Functions§

completion
Lifecycle messages that complete it.
prelude
Lifecycle messages that precede the connection’s first view.
reject
Refuse a connection before it is attached to anything.
server_version
The server’s own Version, sent immediately after the TLS handshake completes and before the client’s Authenticate.