adjust timeouts

This commit is contained in:
Konstantin Demin 2024-06-30 11:51:09 +03:00
parent d3b49b5bf4
commit 8a2e37fa88
Signed by: krd
GPG Key ID: 4D56F87A8BA65FD0
3 changed files with 14 additions and 5 deletions

6
cfg.go
View File

@ -9,12 +9,12 @@ import (
const ( const (
cfgListen = "127.0.0.1:8086" cfgListen = "127.0.0.1:8086"
cfgTtlMin uint32 = 60 cfgTtlMin uint32 = 120
cfgTtlMax uint32 = 3600 cfgTtlMax uint32 = 1800
cfgResolverEndpoint = "127.1.0.1:53" cfgResolverEndpoint = "127.1.0.1:53"
cfgResolverProto = "tcp" cfgResolverProto = "tcp"
cfgResolverTimeout = 2000 * time.Millisecond cfgResolverTimeout = 1900 * time.Millisecond
cfgNftTable = "uni" cfgNftTable = "uni"
cfgNftTableFamily = nft.TableFamilyINet cfgNftTableFamily = nft.TableFamilyINet

11
dns.go
View File

@ -7,6 +7,7 @@ import (
"net" "net"
"strings" "strings"
"sync" "sync"
"time"
"github.com/miekg/dns" "github.com/miekg/dns"
) )
@ -51,7 +52,15 @@ func dnsCustomResolve(qname string, qtype uint16) (*dns.Msg, error) {
req.Question = make([]dns.Question, 1) req.Question = make([]dns.Question, 1)
req.Question[0] = dns.Question{Name: qname, Qtype: qtype, Qclass: dns.ClassINET} req.Question[0] = dns.Question{Name: qname, Qtype: qtype, Qclass: dns.ClassINET}
resp, rtt, err := c.Exchange(req, cfgResolverEndpoint) var resp *dns.Msg
var rtt time.Duration
var err error
for i := 0; i < 2; i++ {
resp, rtt, err = c.Exchange(req, cfgResolverEndpoint)
if err == nil {
break
}
}
if err != nil { if err != nil {
log.Printf("resolving %v/%v (rtt %v) with error: %v", qname, qtype_s, rtt, err) log.Printf("resolving %v/%v (rtt %v) with error: %v", qname, qtype_s, rtt, err)
return nil, err return nil, err

View File

@ -1,5 +1,5 @@
launch=remote launch=remote
remote-connection-string=http:url=http://127.0.0.1:8086/dns,post,post_json,timeout=3000 remote-connection-string=http:url=http://127.0.0.1:8086/dns,post,post_json,timeout=5000
consistent-backends=false consistent-backends=false
zone-cache-refresh-interval=0 zone-cache-refresh-interval=0