aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-12-06 16:50:49 +0900
committerOphestra <cat@gensokyo.uk>2025-12-06 16:50:49 +0900
commit490093a659f305f7d7378e152604b8d021a69bd3 (patch)
tree92a398d31a9c4cf21bb0110a84cfa7ceb0bc3d55 /internal/pipewire
parent2b22efcdf1024bb0002ad648c2ba2c457222f59b (diff)
internal/pipewire: set errno on an empty message
This matches upstream behaviour. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire')
-rw-r--r--internal/pipewire/pipewire.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go
index d0f1e7a6..331fcf17 100644
--- a/internal/pipewire/pipewire.go
+++ b/internal/pipewire/pipewire.go
@@ -291,7 +291,10 @@ func (ctx *Context) recvmsg(remaining []byte) (payload []byte, err error) {
break
}
- if n >= 0 {
+ if n == 0 && len(remaining) != len(ctx.iovecBuf) && err == nil {
+ err = syscall.EPIPE // not wrapped as it did not come from the syscall
+ }
+ if n > 0 {
payload = ctx.iovecBuf[:n]
}
return