From 2bfa4630c7223ee11ec29b91107333758e7f2a8e Mon Sep 17 00:00:00 2001 From: GrĂ©goire DuchĂȘne Date: Sat, 17 Sep 2022 11:28:31 +0100 Subject: Close pipe if PipeListener.DialContext errors out --- net.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'net.go') diff --git a/net.go b/net.go index 040fe66..aa1ccc3 100644 --- a/net.go +++ b/net.go @@ -63,16 +63,19 @@ func (p *PipeListener) Dial(_, _ string) (net.Conn, error) { return p.DialContext(context.Background(), "", "") } -func (p *PipeListener) DialContext(ctx context.Context, _, _ string) (net.Conn, error) { +func (p *PipeListener) DialContext(ctx context.Context, _, _ string) (_ net.Conn, err error) { s, c := net.Pipe() select { case p.conns <- s: return c, nil case <-p.done: - return nil, syscall.ECONNREFUSED + err = syscall.ECONNREFUSED case <-ctx.Done(): - return nil, ctx.Err() + err = ctx.Err() } + s.Close() + c.Close() + return } func (p *PipeListener) DialContextGRPC(ctx context.Context, _ string) (net.Conn, error) { -- cgit v1.2.3-70-g09d2