]> Cypherpunks repositories - gostls13.git/commitdiff
net: BUG section for ReadFrom, ReadFromIP methods of IPConn on "ip4" network
authorMikio Hara <mikioh.mikioh@gmail.com>
Wed, 28 Aug 2013 10:49:17 +0000 (19:49 +0900)
committerMikio Hara <mikioh.mikioh@gmail.com>
Wed, 28 Aug 2013 10:49:17 +0000 (19:49 +0900)
Fixes #3944.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/13263043

src/pkg/net/ipraw_test.go
src/pkg/net/iprawsock_posix.go

index 1abaf885b29ca8d715e2320c92a4495365c51bc0..5bee21ad3ae3c3130bffbb10e17c9faf2bcbb378 100644 (file)
@@ -202,7 +202,7 @@ func TestPacketConnICMPEcho(t *testing.T) {
                        if _, _, err := c.ReadFrom(rb); err != nil {
                                t.Fatalf("PacketConn.ReadFrom failed: %v", err)
                        }
-                       // TODO: fix issue 3944
+                       // See BUG section.
                        //if net == "ip4" {
                        //      rb = ipv4Payload(rb)
                        //}
index a73939fe9307a8963147a45df6bdefe4901a6d13..401adda867ad65ebef899388489b7a6f04097b9d 100644 (file)
@@ -11,6 +11,18 @@ import (
        "time"
 )
 
+// BUG(mikio): On every POSIX platform, reads from the "ip4" network
+// using the ReadFrom or ReadFromIP method might not return a complete
+// IPv4 packet, including its header, even if there is space
+// available. This can occur even in cases where Read or ReadMsgIP
+// could return a complete packet. For this reason, it is recommended
+// that you do not uses these methods if it is important to receive a
+// full packet.
+//
+// The Go 1 compatibliity guidelines make it impossible for us to
+// change the behavior of these methods; use Read or ReadMsgIP
+// instead.
+
 func sockaddrToIP(sa syscall.Sockaddr) Addr {
        switch sa := sa.(type) {
        case *syscall.SockaddrInet4: