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>
This commit is contained in:
2025-12-18 23:32:51 +09:00
parent 8cb0b433b2
commit 08bdc68f3a

View File

@@ -310,7 +310,7 @@ func (ctx *Context) recvmsg(remaining []byte) (payload []byte, err error) {
} }
if err != syscall.EAGAIN && err != syscall.EWOULDBLOCK { if err != syscall.EAGAIN && err != syscall.EWOULDBLOCK {
ctx.closeReceivedFiles() 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 { 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 return err
} }