aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-12-18 23:32:51 +0900
committerOphestra <cat@gensokyo.uk>2025-12-18 23:33:12 +0900
commit08bdc68f3a00fadad3eb196d08f328722bc7504c (patch)
tree0083769edecefcf95decae50875310061b06d752
parent8cb0b433b283e7b6e4aa258d408d116d891e279f (diff)
internal/pipewire: sendmsg/recvmsg errors are fatal
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>
-rw-r--r--internal/pipewire/pipewire.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go
index 7b11ed35..d190eb64 100644
--- a/internal/pipewire/pipewire.go
+++ b/internal/pipewire/pipewire.go
@@ -310,7 +310,7 @@ func (ctx *Context) recvmsg(remaining []byte) (payload []byte, err error) {
}
if err != syscall.EAGAIN && err != syscall.EWOULDBLOCK {
ctx.closeReceivedFiles()
- return nil, os.NewSyscallError("recvmsg", err)
+ return nil, &ProxyFatalError{Err: os.NewSyscallError("recvmsg", err), ProxyErrs: ctx.cloneAsProxyErrors()}
}
}
@@ -347,7 +347,7 @@ func (ctx *Context) sendmsg(p []byte, fds ...int) error {
}
if err != nil && err != syscall.EAGAIN && err != syscall.EWOULDBLOCK {
- return os.NewSyscallError("sendmsg", err)
+ return &ProxyFatalError{Err: os.NewSyscallError("sendmsg", err), ProxyErrs: ctx.cloneAsProxyErrors()}
}
return err
}