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§
Constants§
- OFFERED_
CAPABILITIES - What this kernel offers to negotiate.
Functions§
- negotiate
- Read the first frame and settle the session, or refuse and say why.