diff --git a/doh-client/google.go b/doh-client/google.go index 27b7467..5661a9f 100644 --- a/doh-client/google.go +++ b/doh-client/google.go @@ -90,11 +90,11 @@ func (c *Client) generateRequestGoogle(w dns.ResponseWriter, r *dns.Msg, isTCP b req.Header.Set("Accept", "application/json, application/dns-message, application/dns-udpwireformat") req.Header.Set("User-Agent", USER_AGENT) ctx, cancel := context.WithTimeout(context.Background(), time.Duration(c.conf.Timeout)*time.Second) - defer cancel() req = req.WithContext(ctx) c.httpClientMux.RLock() resp, err := c.httpClient.Do(req) c.httpClientMux.RUnlock() + cancel() if err != nil { log.Println(err) reply := jsonDNS.PrepareReply(r) diff --git a/doh-client/ietf.go b/doh-client/ietf.go index e789210..d02d46c 100644 --- a/doh-client/ietf.go +++ b/doh-client/ietf.go @@ -128,11 +128,11 @@ func (c *Client) generateRequestIETF(w dns.ResponseWriter, r *dns.Msg, isTCP boo req.Header.Set("Accept", "application/dns-message, application/dns-udpwireformat, application/json") req.Header.Set("User-Agent", USER_AGENT) ctx, cancel := context.WithTimeout(context.Background(), time.Duration(c.conf.Timeout)*time.Second) - defer cancel() req = req.WithContext(ctx) c.httpClientMux.RLock() resp, err := c.httpClient.Do(req) c.httpClientMux.RUnlock() + cancel() if err != nil { log.Println(err) reply := jsonDNS.PrepareReply(r)