1
0
mirror of https://github.com/golang/go synced 2024-11-26 21:01:31 -07:00

net: separate NaCl dependent placeholders from BSD's

To clarify the dependency of NaCl platform.

LGTM=adg
R=golang-codereviews, adg
CC=golang-codereviews
https://golang.org/cl/143830044
This commit is contained in:
Mikio Hara 2014-09-18 19:17:55 +09:00
parent 8c2484ec11
commit 484cc67151
23 changed files with 186 additions and 25 deletions

View File

@ -465,6 +465,11 @@ func TestDialer(t *testing.T) {
}
func TestDialDualStackLocalhost(t *testing.T) {
switch runtime.GOOS {
case "nacl":
t.Skipf("skipping test on %q", runtime.GOOS)
}
if ips, err := LookupIP("localhost"); err != nil {
t.Fatalf("LookupIP failed: %v", err)
} else if len(ips) < 2 || !supportsIPv4 || !supportsIPv6 {

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
// DNS client: see RFC 1035.
// Has to be linked into package net for Dial.

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
// Read system DNS config from /etc/resolv.conf

38
src/net/file_stub.go Normal file
View File

@ -0,0 +1,38 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build nacl
package net
import (
"os"
"syscall"
)
// FileConn returns a copy of the network connection corresponding to
// the open file f. It is the caller's responsibility to close f when
// finished. Closing c does not affect f, and closing f does not
// affect c.
func FileConn(f *os.File) (c Conn, err error) {
return nil, syscall.ENOPROTOOPT
}
// FileListener returns a copy of the network listener corresponding
// to the open file f. It is the caller's responsibility to close l
// when finished. Closing l does not affect f, and closing f does not
// affect l.
func FileListener(f *os.File) (l Listener, err error) {
return nil, syscall.ENOPROTOOPT
}
// FilePacketConn returns a copy of the packet network connection
// corresponding to the open file f. It is the caller's
// responsibility to close f when finished. Closing c does not affect
// f, and closing f does not affect c.
func FilePacketConn(f *os.File) (c PacketConn, err error) {
return nil, syscall.ENOPROTOOPT
}

View File

@ -89,7 +89,7 @@ var fileListenerTests = []struct {
func TestFileListener(t *testing.T) {
switch runtime.GOOS {
case "windows":
case "nacl", "windows":
t.Skipf("skipping test on %q", runtime.GOOS)
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
package net

View File

@ -68,6 +68,11 @@ func skipRawSocketTest(t *testing.T) (skip bool, skipmsg string) {
}
func TestResolveIPAddr(t *testing.T) {
switch runtime.GOOS {
case "nacl":
t.Skipf("skipping test on %q", runtime.GOOS)
}
for _, tt := range resolveIPAddrTests {
addr, err := ResolveIPAddr(tt.net, tt.litAddrOrName)
if err != tt.err {

49
src/net/lookup_stub.go Normal file
View File

@ -0,0 +1,49 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build nacl
package net
import "syscall"
func lookupProtocol(name string) (proto int, err error) {
return 0, syscall.ENOPROTOOPT
}
func lookupHost(host string) (addrs []string, err error) {
return nil, syscall.ENOPROTOOPT
}
func lookupIP(host string) (ips []IP, err error) {
return nil, syscall.ENOPROTOOPT
}
func lookupPort(network, service string) (port int, err error) {
return 0, syscall.ENOPROTOOPT
}
func lookupCNAME(name string) (cname string, err error) {
return "", syscall.ENOPROTOOPT
}
func lookupSRV(service, proto, name string) (cname string, srvs []*SRV, err error) {
return "", nil, syscall.ENOPROTOOPT
}
func lookupMX(name string) (mxs []*MX, err error) {
return nil, syscall.ENOPROTOOPT
}
func lookupNS(name string) (nss []*NS, err error) {
return nil, syscall.ENOPROTOOPT
}
func lookupTXT(name string) (txts []string, err error) {
return nil, syscall.ENOPROTOOPT
}
func lookupAddr(addr string) (ptrs []string, err error) {
return nil, syscall.ENOPROTOOPT
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
package net

View File

@ -5,6 +5,7 @@
package net
import (
"runtime"
"testing"
)
@ -43,6 +44,11 @@ var porttests = []portTest{
}
func TestLookupPort(t *testing.T) {
switch runtime.GOOS {
case "nacl":
t.Skipf("skipping test on %q", runtime.GOOS)
}
for i := 0; i < len(porttests); i++ {
tt := porttests[i]
if port, err := LookupPort(tt.netw, tt.name); port != tt.port || (err == nil) != tt.ok {

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
// Read system port mappings from /etc/services

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd nacl netbsd openbsd
// +build darwin dragonfly freebsd netbsd openbsd
package net

View File

@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build nacl solaris
package net
import "syscall"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd nacl netbsd openbsd
// +build darwin dragonfly freebsd netbsd openbsd
package net

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows
// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
package net

37
src/net/sockopt_stub.go Normal file
View File

@ -0,0 +1,37 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build nacl
package net
import "syscall"
func setDefaultSockopts(s, family, sotype int, ipv6only bool) error {
return nil
}
func setDefaultListenerSockopts(s int) error {
return nil
}
func setDefaultMulticastSockopts(s int) error {
return nil
}
func setReadBuffer(fd *netFD, bytes int) error {
return syscall.ENOPROTOOPT
}
func setWriteBuffer(fd *netFD, bytes int) error {
return syscall.ENOPROTOOPT
}
func setKeepAlive(fd *netFD, keepalive bool) error {
return syscall.ENOPROTOOPT
}
func setLinger(fd *netFD, sec int) error {
return syscall.ENOPROTOOPT
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd nacl netbsd openbsd
// +build darwin dragonfly freebsd netbsd openbsd
package net

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd windows
// +build darwin dragonfly freebsd linux netbsd openbsd windows
package net

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build solaris
// +build nacl solaris
package net
@ -10,30 +10,30 @@ import "syscall"
func setIPv4MulticastInterface(fd *netFD, ifi *Interface) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}
func setIPv4MulticastLoopback(fd *netFD, v bool) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}
func joinIPv4Group(fd *netFD, ifi *Interface, ip IP) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}
func setIPv6MulticastInterface(fd *netFD, ifi *Interface) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}
func setIPv6MulticastLoopback(fd *netFD, v bool) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}
func joinIPv6Group(fd *netFD, ifi *Interface, ip IP) error {
// See golang.org/issue/7399.
return syscall.EINVAL
return syscall.ENOPROTOOPT
}

View File

@ -0,0 +1,16 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package net
import (
"syscall"
"time"
)
func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
// OpenBSD has no user-settable per-socket TCP keepalive
// options.
return syscall.ENOPROTOOPT
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows
// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
package net

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build nacl openbsd
// +build nacl
package net
@ -11,8 +11,10 @@ import (
"time"
)
func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
// NaCl and OpenBSD have no user-settable per-socket TCP
// keepalive options.
func setNoDelay(fd *netFD, noDelay bool) error {
return syscall.ENOPROTOOPT
}
func setKeepAlivePeriod(fd *netFD, d time.Duration) error {
return syscall.ENOPROTOOPT
}

View File

@ -383,8 +383,9 @@ func TestExtraFilesFDShuffle(t *testing.T) {
}
func TestExtraFiles(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("no operating system support; skipping")
switch runtime.GOOS {
case "nacl", "windows":
t.Skipf("skipping test on %q", runtime.GOOS)
}
// Ensure that file descriptors have not already been leaked into