catch spurious UDP sendmsg errors in multiplex integration test (#4451)

* catch spurious UDP sendmsg errors in multiplex integration test

* platform-dependent isPermissionError
This commit is contained in:
Marten Seemann
2024-04-20 15:21:24 +02:00
committed by GitHub
parent 18422ad1c4
commit e58fa87566
3 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
//go:build linux
package self_test
import (
"errors"
"os"
"golang.org/x/sys/unix"
)
// The first sendmsg call on a new UDP socket sometimes errors on Linux.
// It's not clear why this happens.
// See https://github.com/golang/go/issues/63322.
func isPermissionError(err error) bool {
var serr *os.SyscallError
if errors.As(err, &serr) {
return serr.Syscall == "sendmsg" && serr.Err == unix.EPERM
}
return false
}