| Age | Commit message (Collapse) | Author |
|
This makes package check portable, and removes nonportable behaviour from package pkg, pipewire, and system. All other packages remain nonportable due to their nature. No latency increase was observed due to this change on amd64 and arm64 linux.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids timing out on systems running very slowly.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Implementation is no longer tied down by the limitations of SyscallConn.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The interface provided by net is not used here and is a leftover from a previous implementation. This change removes it.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The interface does not expose underlying kernel notification mechanisms. This change removes the need to poll in situations were the next call might block.
This is made cumbersome by the SyscallConn interface left over from a previous implementation, it will be replaced in a later commit as the current implementation does not make use of any net.Conn methods other than Close.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
When returned wrapped as a syscall error, these are impossible to recover from, so wrap them as a fatal error.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change reorders and groups struct elements. This improves readability since this struct holds a lot of state loosely related to each other.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change also implements pending destructible check on Sync. Destruction method should always be implemented as a wrapper of destructible.destroy.
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>
|
|
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>
|
|
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>
|
|
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.
|
|
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 is not defined anywhere in upstream PipeWire, no idea why.
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 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>
|
|
This is not guaranteed to have completed after a roundtrip. This is leftover from when Roundtrip also sent and waited for sync.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes it easier to handle resources who only needs to stay alive before the next sync.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
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 matches upstream behaviour.
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 is unnecessary and does not match upstream behaviour.
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>
|
|
This makes their handling much less error-prone.
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>
|
|
This is finally the thing we are after.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These did not appear useful at first since it was assumed to be filenames for loading modules.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is the second message on the captured sample.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This implements enough types to correctly marshal and unmarshal Core::Hello.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change also centralises encoding testing.
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>
|