mirror of
https://github.com/m13253/dns-over-https.git
synced 2026-10-23 10:52:40 +00:00
Detect context.DeadlineExceeded
This commit is contained in:
1 parent
c51be0e69c
commit
2d9c9eba50
2 files changed
+20
-2
No files matched your search
@@ -92,6 +92,13 @@ func (c *Client) generateRequestGoogle(ctx context.Context, w dns.ResponseWriter
|
|||||||
c.httpClientMux.RLock()
|
c.httpClientMux.RLock()
|
||||||
resp, err := c.httpClient.Do(req)
|
resp, err := c.httpClient.Do(req)
|
||||||
c.httpClientMux.RUnlock()
|
c.httpClientMux.RUnlock()
|
||||||
|
if err == context.DeadlineExceeded {
|
||||||
|
// Do not respond, silently fail to prevent caching of SERVFAIL
|
||||||
|
log.Println(err)
|
||||||
|
return &DNSRequest{
|
||||||
|
err: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
reply := jsonDNS.PrepareReply(r)
|
reply := jsonDNS.PrepareReply(r)
|
||||||
|
|||||||
+13
-2
@@ -108,8 +108,10 @@ func (c *Client) generateRequestIETF(ctx context.Context, w dns.ResponseWriter,
|
|||||||
if len(requestURL) < 2048 {
|
if len(requestURL) < 2048 {
|
||||||
req, err = http.NewRequest("GET", requestURL, nil)
|
req, err = http.NewRequest("GET", requestURL, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Do not respond, silently fail to prevent caching of SERVFAIL
|
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
|
reply := jsonDNS.PrepareReply(r)
|
||||||
|
reply.Rcode = dns.RcodeServerFailure
|
||||||
|
w.WriteMsg(reply)
|
||||||
return &DNSRequest{
|
return &DNSRequest{
|
||||||
err: err,
|
err: err,
|
||||||
}
|
}
|
||||||
@@ -117,8 +119,10 @@ func (c *Client) generateRequestIETF(ctx context.Context, w dns.ResponseWriter,
|
|||||||
} else {
|
} else {
|
||||||
req, err = http.NewRequest("POST", upstream, bytes.NewReader(requestBinary))
|
req, err = http.NewRequest("POST", upstream, bytes.NewReader(requestBinary))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Do not respond, silently fail to prevent caching of SERVFAIL
|
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
|
reply := jsonDNS.PrepareReply(r)
|
||||||
|
reply.Rcode = dns.RcodeServerFailure
|
||||||
|
w.WriteMsg(reply)
|
||||||
return &DNSRequest{
|
return &DNSRequest{
|
||||||
err: err,
|
err: err,
|
||||||
}
|
}
|
||||||
@@ -131,6 +135,13 @@ func (c *Client) generateRequestIETF(ctx context.Context, w dns.ResponseWriter,
|
|||||||
c.httpClientMux.RLock()
|
c.httpClientMux.RLock()
|
||||||
resp, err := c.httpClient.Do(req)
|
resp, err := c.httpClient.Do(req)
|
||||||
c.httpClientMux.RUnlock()
|
c.httpClientMux.RUnlock()
|
||||||
|
if err == context.DeadlineExceeded {
|
||||||
|
// Do not respond, silently fail to prevent caching of SERVFAIL
|
||||||
|
log.Println(err)
|
||||||
|
return &DNSRequest{
|
||||||
|
err: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
reply := jsonDNS.PrepareReply(r)
|
reply := jsonDNS.PrepareReply(r)
|
||||||
|
|||||||
Reference in new issue
Block a user