From 39ccc1816ce53ac7246fb93d466212c0ce506b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 8 Jun 2024 22:18:45 +0800 Subject: [PATCH] Fix timeout not apply to lookup --- client.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/client.go b/client.go index 0890448..2ac953e 100644 --- a/client.go +++ b/client.go @@ -18,7 +18,7 @@ import ( const ( DefaultTTL = 600 - DefaultTimeout = 5 * time.Second + DefaultTimeout = 10 * time.Second ) var ( @@ -157,14 +157,9 @@ func (c *Client) ExchangeWithResponseCheck(ctx context.Context, transport Transp return nil, ErrResponseRejectedCached } } - var cancel context.CancelFunc - if c.timeout > 0 { - ctx, cancel = context.WithTimeout(ctx, c.timeout) - } + ctx, cancel := context.WithTimeout(ctx, c.timeout) response, err := transport.Exchange(ctx, message) - if cancel != nil { - cancel() - } + cancel() if err != nil { return nil, err } @@ -286,8 +281,10 @@ func (c *Client) LookupWithResponseCheck(ctx context.Context, transport Transpor return nil, ErrResponseRejectedCached } } + ctx, cancel := context.WithTimeout(ctx, c.timeout) var rCode int response, err := transport.Lookup(ctx, domain, strategy) + cancel() if err != nil { return nil, wrapError(err) }