From 08bdc68f3a00fadad3eb196d08f328722bc7504c Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 18 Dec 2025 23:32:51 +0900 Subject: [PATCH] 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 --- internal/pipewire/pipewire.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go index 7b11ed3..d190eb6 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 }