mirror of
https://github.com/golang/go
synced 2024-11-02 11:50:30 +00: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
5 changed files with 42 additions and 4 deletions
|
@ -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) {
|
||||
ips := "*"
|
||||
if !ip.IsUnspecified() {
|
||||
if len(ip) != 0 && !ip.IsUnspecified() {
|
||||
ips = ip.String()
|
||||
}
|
||||
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.
|
||||
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
|
||||
|
|
|
@ -52,8 +52,8 @@ func TestGmailMX(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGmailTXT(t *testing.T) {
|
||||
if runtime.GOOS == "windows" || runtime.GOOS == "plan9" {
|
||||
t.Logf("LookupTXT is not implemented on Windows or Plan 9")
|
||||
if runtime.GOOS == "windows" {
|
||||
t.Logf("LookupTXT is not implemented on Windows")
|
||||
return
|
||||
}
|
||||
if testing.Short() || avoidMacFirewall {
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"flag"
|
||||
"os"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -128,6 +129,9 @@ func TestReverseAddress(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestShutdown(t *testing.T) {
|
||||
if runtime.GOOS == "plan9" {
|
||||
return
|
||||
}
|
||||
l, err := Listen("tcp", "127.0.0.1:0")
|
||||
if err != nil {
|
||||
if l, err = Listen("tcp6", "[::1]:0"); err != nil {
|
||||
|
|
|
@ -16,6 +16,24 @@ type TCPConn struct {
|
|||
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,
|
||||
// which must be "tcp", "tcp4", or "tcp6". If laddr is not nil, it is used
|
||||
// as the local address for the connection.
|
||||
|
|
|
@ -6,6 +6,7 @@ package net
|
|||
|
||||
import (
|
||||
"os"
|
||||
"runtime"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
@ -41,11 +42,17 @@ func testTimeout(t *testing.T, network, addr string, readFrom bool) {
|
|||
}
|
||||
|
||||
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", true)
|
||||
}
|
||||
|
||||
func TestTimeoutTCP(t *testing.T) {
|
||||
if runtime.GOOS == "plan9" {
|
||||
return
|
||||
}
|
||||
// set up a listener that won't talk back
|
||||
listening := make(chan string)
|
||||
done := make(chan int)
|
||||
|
|
Loading…
Reference in a new issue