| Age | Commit message (Collapse) | Author |
|
Turns out the PipeWire server does not expect a value of type None here at all.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Nothing uses this right now, this would have to be called by wrapper methods on Registry that would search the objects
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This now marshals into a value of type None when the slice is nil, and correctly unmarshals from type None.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This now calls unmarshalCheckTypeBounds to advance to the next message. Additionally, handling for None value is relocated to a function for reuse by other types.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
A nil spa_dict results in a None type value being sent over the wire.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These do not belong under Context, and is an early implementation limitation that carried over.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Receiving this event indicates something has gone terribly wrong somehow, and ignoring Core::BoundProps causes inconsistent state anyway.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is emitted by the server when a proxy id is removed for any reason. Currently, the only path for this to be emitted is when a global object is destroyed while some proxy is still bound to it.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
NixOS 25.11 introduces a crash in cage and an intermittent crash in foot.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Skipping events can cause local state to diverge from the server.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This flushes message buffer before queueing the event expecting the error. Since this is quite useful and relatively complex, it is relocated to a method of Context.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This handles the error returned by Sync.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These have similar semantics to equivalent Wayland security-context-v1 fields.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The error string itself is descriptive enough, so use it as the error message directly.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This requires error handling infrastructure in Core that does not yet exist, so it is not exported for now. It has been manually tested via linkname against PipeWire.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is emitted by PipeWire when a global object disappears, because PipeWire insists that all clients that had called Core::GetRegistry must constantly sync its local registry state with the remote.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids a race between returning from syscall and checking the state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Unused in hakurei but could be useful when the package is moved out of internal.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This otherwise truncates the received data by len(remaining) bytes.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was left in consume when relocating per-roundtrip code out of the per-receive consume method.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids incrementing it twice proceeding from a partial message.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The error is handled later, clobbering it here breaks error handling when SCMs are present.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This reverts commit 564db6863b8e0e90cbf7210152c53124fddc1b4c.
|
|
Due to the special nature of the init process, direct use of wait outside the wait4 loop is racy. This change copies the wstatus from wait4 loop state instead.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Blocking prevents further wait4 processing causing ops to never receive their signals.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This now falls back to message.Error if no other concrete type is matched.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
There is no reason to keep the shell process around.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This includes the string for the failing op which helps with troubleshooting.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for testing daemon error handling behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Due to the special nature of the init process, regular wait calls are unavailable. This change provides infrastructure to access wait4 loop state from Op.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Remote sequence sometimes start with a non-zero value, and keeps the same value for a while before going back to zero. Conditions for reproducing this behaviour is not yet known. This change works around this behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This fully replaces PulseAudio with PipeWire and enforces the PulseAudio check and error message. The pipewire-pulse daemon is handled in the NixOS module.
Closes #26.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is slightly counterintuitive, but it turned out well under this framework since the daemon backs its target file.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for daemons internal to the container. The only current use case is pipewire-pulse.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful currently for daemon Op, but could be used for many other things.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is very simple and takes almost no inputs. This is not yet hooked up to anything to prevent breaking any existing behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is at a point considered to be already "within" the container. Daemons internal to the container can be started here.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is currently still a noop, but required for #26.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is for "run" command, formerly permissive defaults behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is not defined anywhere in upstream PipeWire, no idea why.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are for #26. None of them are implemented yet. This fixes up test cases for the change to happen. Existing source code and JSON configuration continue to have the same effect. Existing flags get its EPulse bit replaced by EPipeWire.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Tests for this Op happens to be the best out of everything due to the robust infrastructure offered by internal/pipewire.
This is now ready to use in internal/outcome for implementing #26.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The PipeWire Op check cannot be made parallel due to the OS interaction.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This prevents leaking the socket and pipe fds.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This improves readability as the offset is not immediately obvious.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
There is currently no known message that will get the PipeWire server to emit this event. It should be handled regardless.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This adds checking of FileCount while writing a message. Message encoding is relocated to an exported method to be used externally, probably for test stubbing.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes wrapped syscall errors produce a cleaner error message.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This behaviour is a bit messy and checks what appears to be a windows-specific environment variable for some reason. Keeping everything intact regardless to match upstream behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|