This should not be handled on every receive as it could cause valid (though impossible in current upstream implementation) messages to be rejected and raise a protocol error.
Signed-off-by: Ophestra <cat@gensokyo.uk>
This change fixes handling of non-fatal errors during a roundtrip as there can be multiple receive calls per roundtrip.
Signed-off-by: Ophestra <cat@gensokyo.uk>
This name is more correct since it does not roundtrip, but receives messages. This is also more consistent with the method on event proxies.
Signed-off-by: Ophestra <cat@gensokyo.uk>
The PipeWire protocol does not work with Go abstractions. This change makes relevant methods call sendmsg/recvmsg directly.
Signed-off-by: Ophestra <cat@gensokyo.uk>
This should make things easier to navigate, and possible to fully automatically generate the constants in the future.
Signed-off-by: Ophestra <cat@gensokyo.uk>
These errors are recoverable and should not terminate event handling. Only terminate event handling for protocol errors or inconsistent state that makes further event handling impossible.
Signed-off-by: Ophestra <cat@gensokyo.uk>
These proxies (with special cases documented in the implementation) are only safe for use after acknowledgement from the server.
Signed-off-by: Ophestra <cat@gensokyo.uk>
This consumes the entire sample, is validated to send identical messages and correctly handle received messages.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Test cases are from interactions between pw-container and PipeWire. Results are validated against corresponding body.
Signed-off-by: Ophestra <cat@gensokyo.uk>