From: Mikio Hara Date: Tue, 28 Jan 2014 11:18:27 +0000 (-0800) Subject: net: make it possible to use FilePacketConn with IPConn X-Git-Tag: go1.3beta1~856 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c88a6719255f5dc8c85b367eaf9569f171e73b56;p=gostls13.git net: make it possible to use FilePacketConn with IPConn Fixes #6803. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://golang.org/cl/57560043 --- diff --git a/src/pkg/net/file_test.go b/src/pkg/net/file_test.go index acaf188510..e4615b74fc 100644 --- a/src/pkg/net/file_test.go +++ b/src/pkg/net/file_test.go @@ -174,6 +174,8 @@ var filePacketConnTests = []struct { {net: "udp6", addr: "[::1]", ipv6: true}, + {net: "ip4:icmp", addr: "127.0.0.1"}, + {net: "unixgram", addr: "@gotest3/net", linux: true}, } @@ -187,6 +189,10 @@ func TestFilePacketConn(t *testing.T) { if skipServerTest(tt.net, "unixgram", tt.addr, tt.ipv6, false, tt.linux) { continue } + if os.Getuid() != 0 && tt.net == "ip4:icmp" { + t.Log("skipping test; must be root") + continue + } testFilePacketConnListen(t, tt.net, tt.addr) switch tt.addr { case "", "0.0.0.0", "[::ffff:0.0.0.0]", "[::]": diff --git a/src/pkg/net/file_unix.go b/src/pkg/net/file_unix.go index 8fe1b0eb03..38ae47f784 100644 --- a/src/pkg/net/file_unix.go +++ b/src/pkg/net/file_unix.go @@ -129,6 +129,8 @@ func FilePacketConn(f *os.File) (c PacketConn, err error) { switch fd.laddr.(type) { case *UDPAddr: return newUDPConn(fd), nil + case *IPAddr: + return newIPConn(fd), nil case *UnixAddr: return newUnixConn(fd), nil }