aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorKevin Burke <kev@inburke.com>2020-10-18 09:49:16 -0700
committerKevin Burke <kev@inburke.com>2020-10-21 23:53:08 +0000
commita29dd1f2bd0ee0048f03782ba67034a0441a147e (patch)
treeb3e849c2db6086bc397d23593522053d89104e9e /src/net
parentcb768c801a9cafa18fe7805ac70bd947930fcdc7 (diff)
downloadgo-a29dd1f2bd0ee0048f03782ba67034a0441a147e.tar.gz
go-a29dd1f2bd0ee0048f03782ba67034a0441a147e.zip
net: add Example for Unix dialer with context
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>
Diffstat (limited to 'src/net')
-rw-r--r--src/net/example_test.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/net/example_test.go b/src/net/example_test.go
index ef8c38f9f4..72c7183c13 100644
--- a/src/net/example_test.go
+++ b/src/net/example_test.go
@@ -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))