Skip to content

httpd: extract VarlinkFramer helper to simplify forward loop - #82

Open
mvo5 wants to merge 2 commits into
systemd:mainfrom
mvo5:varlink-framer
Open

httpd: extract VarlinkFramer helper to simplify forward loop#82
mvo5 wants to merge 2 commits into
systemd:mainfrom
mvo5:varlink-framer

Conversation

@mvo5

@mvo5 mvo5 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

When we do the websocket<->unix socket forwarding the loop was relatively complicated. It mixed I/O and protocol logic. This commit got inspired by the sans-io pattern and refactors so that the protocol logic is now split out from the I/O. This means that the code is simpler and easier to test.

The logic about the Varlink protocol frames is now a new VarlinkFramer helper.


httpd: make the websocket message handling arm exhaustive

The websocket data handling had a (slightly) ugly "other" arm
that was hiding Message::Ping(_) | Message::Pong(_) messages
that can come via a websocket.

mvo5 added 2 commits July 31, 2026 17:08
When we do the websocket<->unix socket forwarding the loop was
relatively complicated. It mixed I/O and protocol logic. This
commit got inspired by the sans-io pattern and refactors so
that the protocol logic is now split out from the I/O. This
means that the code is simpler and easier to test.

The logic about the Varlink protocol frames is now a new
VarlinkFramer helper.
The websocket data handling had a (slightly) ugly "other" arm
that was hiding `Message::Ping(_) | Message::Pong(_)` messages
that can come via a websocket.

This commit adds it for completeness so that its clear from looking
at the match how each message type is handled.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants