]> Cypherpunks repositories - gostls13.git/commitdiff
net: add Example for Unix dialer with context
authorKevin Burke <kev@inburke.com>
Sun, 18 Oct 2020 16:49:16 +0000 (09:49 -0700)
committerKevin Burke <kev@inburke.com>
Wed, 21 Oct 2020 23:53:08 +0000 (23:53 +0000)
Showing users how to accomplish this more easily is a compromise
between doing nothing and adding a new API to the net package.

Fixes #38506.

Change-Id: I43f831cf94951c987cf3c8c1aa55f0012ee8034e
Reviewed-on: https://go-review.googlesource.com/c/go/+/263417
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Brad Fitzpatrick <bradfitz@golang.org>

src/net/example_test.go

index ef8c38f9f4ab6696b9d834ab98116ea3805800ff..72c7183c13469ae32ee7e6121cd22206801792ed 100644 (file)
@@ -55,6 +55,27 @@ func ExampleDialer() {
        }
 }
 
+func ExampleDialer_unix() {
+       // DialUnix does not take a context.Context parameter. This example shows
+       // how to dial a Unix socket with a Context. Note that the Context only
+       // applies to the dial operation; it does not apply to the connection once
+       // it has been established.
+       var d net.Dialer
+       ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
+       defer cancel()
+
+       d.LocalAddr = nil // if you have a local addr, add it here
+       raddr := net.UnixAddr{Name: "/path/to/unix.sock", Net: "unix"}
+       conn, err := d.DialContext(ctx, "unix", raddr.String())
+       if err != nil {
+               log.Fatalf("Failed to dial: %v", err)
+       }
+       defer conn.Close()
+       if _, err := conn.Write([]byte("Hello, socket!")); err != nil {
+               log.Fatal(err)
+       }
+}
+
 func ExampleIPv4() {
        fmt.Println(net.IPv4(8, 8, 8, 8))