mirror of
https://github.com/golang/go
synced 2024-11-21 23:24:41 -07:00
net: Plan 9 fixes
Makes all tests pass. R=rsc CC=golang-dev https://golang.org/cl/5320041
This commit is contained in:
parent
350a5ce64f
commit
5842336089
@ -49,7 +49,7 @@ func queryCS(net, host, service string) (res []string, err os.Error) {
|
|||||||
|
|
||||||
func queryCS1(net string, ip IP, port int) (clone, dest string, err os.Error) {
|
func queryCS1(net string, ip IP, port int) (clone, dest string, err os.Error) {
|
||||||
ips := "*"
|
ips := "*"
|
||||||
if !ip.IsUnspecified() {
|
if len(ip) != 0 && !ip.IsUnspecified() {
|
||||||
ips = ip.String()
|
ips = ip.String()
|
||||||
}
|
}
|
||||||
lines, err := queryCS(net, ips, itoa(port))
|
lines, err := queryCS(net, ips, itoa(port))
|
||||||
@ -215,7 +215,16 @@ func LookupMX(name string) (mx []*MX, err os.Error) {
|
|||||||
|
|
||||||
// LookupTXT returns the DNS TXT records for the given domain name.
|
// LookupTXT returns the DNS TXT records for the given domain name.
|
||||||
func LookupTXT(name string) (txt []string, err os.Error) {
|
func LookupTXT(name string) (txt []string, err os.Error) {
|
||||||
return nil, os.NewError("net.LookupTXT is not implemented on Plan 9")
|
lines, err := queryDNS(name, "txt")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for _, line := range lines {
|
||||||
|
if i := byteIndex(line, '\t'); i >= 0 {
|
||||||
|
txt = append(txt, line[i+1:])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// LookupAddr performs a reverse lookup for the given address, returning a list
|
// LookupAddr performs a reverse lookup for the given address, returning a list
|
||||||
|
@ -52,8 +52,8 @@ func TestGmailMX(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGmailTXT(t *testing.T) {
|
func TestGmailTXT(t *testing.T) {
|
||||||
if runtime.GOOS == "windows" || runtime.GOOS == "plan9" {
|
if runtime.GOOS == "windows" {
|
||||||
t.Logf("LookupTXT is not implemented on Windows or Plan 9")
|
t.Logf("LookupTXT is not implemented on Windows")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if testing.Short() || avoidMacFirewall {
|
if testing.Short() || avoidMacFirewall {
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"flag"
|
"flag"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -128,6 +129,9 @@ func TestReverseAddress(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestShutdown(t *testing.T) {
|
func TestShutdown(t *testing.T) {
|
||||||
|
if runtime.GOOS == "plan9" {
|
||||||
|
return
|
||||||
|
}
|
||||||
l, err := Listen("tcp", "127.0.0.1:0")
|
l, err := Listen("tcp", "127.0.0.1:0")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if l, err = Listen("tcp6", "[::1]:0"); err != nil {
|
if l, err = Listen("tcp6", "[::1]:0"); err != nil {
|
||||||
|
@ -16,6 +16,24 @@ type TCPConn struct {
|
|||||||
plan9Conn
|
plan9Conn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CloseRead shuts down the reading side of the TCP connection.
|
||||||
|
// Most callers should just use Close.
|
||||||
|
func (c *TCPConn) CloseRead() os.Error {
|
||||||
|
if !c.ok() {
|
||||||
|
return os.EINVAL
|
||||||
|
}
|
||||||
|
return os.EPLAN9
|
||||||
|
}
|
||||||
|
|
||||||
|
// CloseWrite shuts down the writing side of the TCP connection.
|
||||||
|
// Most callers should just use Close.
|
||||||
|
func (c *TCPConn) CloseWrite() os.Error {
|
||||||
|
if !c.ok() {
|
||||||
|
return os.EINVAL
|
||||||
|
}
|
||||||
|
return os.EPLAN9
|
||||||
|
}
|
||||||
|
|
||||||
// DialTCP connects to the remote address raddr on the network net,
|
// DialTCP connects to the remote address raddr on the network net,
|
||||||
// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used
|
// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used
|
||||||
// as the local address for the connection.
|
// as the local address for the connection.
|
||||||
|
@ -6,6 +6,7 @@ package net
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@ -41,11 +42,17 @@ func testTimeout(t *testing.T, network, addr string, readFrom bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTimeoutUDP(t *testing.T) {
|
func TestTimeoutUDP(t *testing.T) {
|
||||||
|
if runtime.GOOS == "plan9" {
|
||||||
|
return
|
||||||
|
}
|
||||||
testTimeout(t, "udp", "127.0.0.1:53", false)
|
testTimeout(t, "udp", "127.0.0.1:53", false)
|
||||||
testTimeout(t, "udp", "127.0.0.1:53", true)
|
testTimeout(t, "udp", "127.0.0.1:53", true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTimeoutTCP(t *testing.T) {
|
func TestTimeoutTCP(t *testing.T) {
|
||||||
|
if runtime.GOOS == "plan9" {
|
||||||
|
return
|
||||||
|
}
|
||||||
// set up a listener that won't talk back
|
// set up a listener that won't talk back
|
||||||
listening := make(chan string)
|
listening := make(chan string)
|
||||||
done := make(chan int)
|
done := make(chan int)
|
||||||
|
Loading…
Reference in New Issue
Block a user