瀏覽代碼

ipv4: update example for the use of dual stack listener

Fixes golang/go#13612.

Change-Id: Ie224c1018fb4ceb013476f586000801ce447956e
Reviewed-on: https://go-review.googlesource.com/17798
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Mikio Hara 10 年之前
父節點
當前提交
ba406c5067
共有 1 個文件被更改,包括 9 次插入7 次删除
  1. 9 7
      ipv4/example_test.go

+ 9 - 7
ipv4/example_test.go

@@ -17,7 +17,7 @@ import (
 )
 
 func ExampleConn_markingTCP() {
-	ln, err := net.Listen("tcp4", "0.0.0.0:1024")
+	ln, err := net.Listen("tcp", "0.0.0.0:1024")
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -30,12 +30,14 @@ func ExampleConn_markingTCP() {
 		}
 		go func(c net.Conn) {
 			defer c.Close()
-			p := ipv4.NewConn(c)
-			if err := p.SetTOS(0x28); err != nil { // DSCP AF11
-				log.Fatal(err)
-			}
-			if err := p.SetTTL(128); err != nil {
-				log.Fatal(err)
+			if c.RemoteAddr().(*net.TCPAddr).IP.To4() != nil {
+				p := ipv4.NewConn(c)
+				if err := p.SetTOS(0x28); err != nil { // DSCP AF11
+					log.Fatal(err)
+				}
+				if err := p.SetTTL(128); err != nil {
+					log.Fatal(err)
+				}
 			}
 			if _, err := c.Write([]byte("HELLO-R-U-THERE-ACK")); err != nil {
 				log.Fatal(err)