From 2ba13fdefc36996cb1c8698c07223ecbcaca1308 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 14 Apr 2022 19:42:02 +0200 Subject: [PATCH] upstream: use context to set connectToUpstream timeout This allows the timeout to apply to the whole sequence of operations, as opposed to just Dial. --- upstream.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/upstream.go b/upstream.go index ea65448..5c912f3 100644 --- a/upstream.go +++ b/upstream.go @@ -150,7 +150,10 @@ type upstreamConn struct { func connectToUpstream(ctx context.Context, network *network) (*upstreamConn, error) { logger := &prefixLogger{network.user.logger, fmt.Sprintf("upstream %q: ", network.GetName())} - dialer := net.Dialer{Timeout: connectTimeout} + ctx, cancel := context.WithTimeout(ctx, connectTimeout) + defer cancel() + + var dialer net.Dialer u, err := network.URL() if err != nil {