]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix build on old Linux kernels
authorRuss Cox <rsc@golang.org>
Wed, 26 Jan 2011 20:46:15 +0000 (15:46 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 26 Jan 2011 20:46:15 +0000 (15:46 -0500)
Thanks to Mike Beller for identifying the problem.

Fixes #1442.

R=bradfitz, bradfitzgo
CC=golang-dev
https://golang.org/cl/4102042

src/pkg/net/server_test.go

index 3f2442a462ddf435dd968af0a6e6e01a781f499c..543227f7d12e13a5271b033aaa5144a25064e36b 100644 (file)
@@ -25,7 +25,7 @@ func runEcho(fd io.ReadWriter, done chan<- int) {
 
        for {
                n, err := fd.Read(buf[0:])
-               if err != nil || n == 0 {
+               if err != nil || n == 0 || string(buf[:n]) == "END" {
                        break
                }
                fd.Write(buf[0:n])
@@ -79,6 +79,13 @@ func connect(t *testing.T, network, addr string, isEmpty bool) {
        if n != len(b) || err1 != nil {
                t.Fatalf("fd.Read() = %d, %v (want %d, nil)", n, err1, len(b))
        }
+
+       // Send explicit ending for unixpacket.
+       // Older Linux kernels do stop reads on close.
+       if network == "unixpacket" {
+               fd.Write([]byte("END"))
+       }
+
        fd.Close()
 }