diff options
author | Kevin Burke <kev@inburke.com> | 2020-10-18 09:49:16 -0700 |
---|---|---|
committer | Kevin Burke <kev@inburke.com> | 2020-10-21 23:53:08 +0000 |
commit | a29dd1f2bd0ee0048f03782ba67034a0441a147e (patch) | |
tree | b3e849c2db6086bc397d23593522053d89104e9e /src/net | |
parent | cb768c801a9cafa18fe7805ac70bd947930fcdc7 (diff) | |
download | go-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.go | 21 |
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)) |