]> Cypherpunks repositories - gostls13.git/commitdiff
net: if accept4 returns EINVAL fall back to accept
authorIan Lance Taylor <iant@golang.org>
Sat, 9 Mar 2013 05:18:06 +0000 (21:18 -0800)
committerIan Lance Taylor <iant@golang.org>
Sat, 9 Mar 2013 05:18:06 +0000 (21:18 -0800)
R=golang-dev, andybalholm, mikioh.mikioh
CC=golang-dev
https://golang.org/cl/7485045

src/pkg/net/sock_cloexec.go

index 12d0f34887c8a45ec8325fcb08f15fa1e723585c..3f22cd8f570480c26c8b85d8af932e8b5d30e1ea 100644 (file)
@@ -44,8 +44,8 @@ func sysSocket(f, t, p int) (int, error) {
 func accept(fd int) (int, syscall.Sockaddr, error) {
        nfd, sa, err := syscall.Accept4(fd, syscall.SOCK_NONBLOCK|syscall.SOCK_CLOEXEC)
        // The accept4 system call was introduced in Linux 2.6.28.  If
-       // we get an ENOSYS error, fall back to using accept.
-       if err == nil || err != syscall.ENOSYS {
+       // we get an ENOSYS or EINVAL error, fall back to using accept.
+       if err == nil || (err != syscall.ENOSYS && err != syscall.EINVAL) {
                return nfd, sa, err
        }