Skip to main content

Module hello

Module hello 

Source
Expand description

The handshake: the first frame, on a deadline, and what it settles.

Three things are negotiated and one is not. The MAJOR version must match exactly — an unknown major is a refusal, never a best-effort session, because two peers that disagree about the frame grammar cannot discover it by trying. The MINOR negotiates DOWNWARD to min(client, server), so a newer client degrades rather than failing. Capabilities INTERSECT: the client asks, the kernel answers with what it also has, and a client must treat anything absent as unavailable.

What is not negotiated is authority. A capability is a feature flag, not a grant — ADR 0002 makes the UDS peer credential the only identity here — and client is a free-form label for logs. Nothing in a hello can widen what the connection may do, which is why the handshake can be this permissive about what it accepts and this strict about what it promises.

Structs§

Readiness
The kernel state a HelloAck reports.
Session
What a completed handshake settled.

Constants§

OFFERED_CAPABILITIES
What this kernel offers to negotiate.

Functions§

negotiate
Read the first frame and settle the session, or refuse and say why.