diff --git a/src/pkg/syscall/passfd_test.go b/src/pkg/syscall/passfd_test.go index 079c9303ba582fb8b8fedde2a9a8531e4508d4e6..a0e590950755fc8f3b7866ddf42b394c87c8629f 100644 --- a/src/pkg/syscall/passfd_test.go +++ b/src/pkg/syscall/passfd_test.go @@ -13,7 +13,6 @@ import ( "net" "os" "os/exec" - "runtime" "syscall" "testing" "time" @@ -27,9 +26,6 @@ import ( // "-test.run=^TestPassFD$" and an environment variable used to signal // that the test should become the child process instead. func TestPassFD(t *testing.T) { - if runtime.GOOS == "openbsd" { - t.Skip("issue 4956") - } if os.Getenv("GO_WANT_HELPER_PROCESS") == "1" { passFDChild() return diff --git a/src/pkg/syscall/syscall_bsd.go b/src/pkg/syscall/syscall_bsd.go index a1e0d153f7ed8d8da70fa9a446c8c58dae495983..560409a26202af2a11c49e2b95b848fed5a64da4 100644 --- a/src/pkg/syscall/syscall_bsd.go +++ b/src/pkg/syscall/syscall_bsd.go @@ -327,6 +327,11 @@ func Getsockname(fd int) (sa Sockaddr, err error) { if err = getsockname(fd, &rsa, &len); err != nil { return } + // TODO(jsing): Remove after OpenBSD 5.4 is released (see issue 3349). + if runtime.GOOS == "openbsd" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { + rsa.Addr.Family = AF_UNIX + rsa.Addr.Len = SizeofSockaddrUnix + } return anyToSockaddr(&rsa) }