Commit 72b0fb51 authored by Ben Burkert's avatar Ben Burkert Committed by Ian Lance Taylor

net: map context errors from aborted dial to internal net package errors

Map the error returned when a dial is aborted from the context package
error to the internal net package error. For example, context.Canceled
errors map to errCanceled, and context.DeadlineExceeded errors map to
poll.ErrTimeout.

Fixes #23648

Change-Id: Idf9d3d08052d540740c0b054503aaed931dc5b1e
Reviewed-on: https://go-review.googlesource.com/103518
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent dfd7f356
...@@ -102,7 +102,8 @@ func TestDialContextCancelRace(t *testing.T) { ...@@ -102,7 +102,8 @@ func TestDialContextCancelRace(t *testing.T) {
if !ok || oe.Op != "dial" { if !ok || oe.Op != "dial" {
t.Fatalf("Dial error = %#v; want dial *OpError", err) t.Fatalf("Dial error = %#v; want dial *OpError", err)
} }
if oe.Err != ctx.Err() {
t.Errorf("DialContext = (%v, %v); want OpError with error %v", c, err, ctx.Err()) if oe.Err != errCanceled {
t.Errorf("DialContext = (%v, %v); want OpError with error %v", c, err, errCanceled)
} }
} }
...@@ -121,7 +121,7 @@ func (fd *netFD) connect(ctx context.Context, la, ra syscall.Sockaddr) (rsa sysc ...@@ -121,7 +121,7 @@ func (fd *netFD) connect(ctx context.Context, la, ra syscall.Sockaddr) (rsa sysc
// == nil). Because we've now poisoned the connection // == nil). Because we've now poisoned the connection
// by making it unwritable, don't return a successful // by making it unwritable, don't return a successful
// dial. This was issue 16523. // dial. This was issue 16523.
ret = ctxErr ret = mapErr(ctxErr)
fd.Close() // prevent a leak fd.Close() // prevent a leak
} }
}() }()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment