Merge pull request #2150 from mellow-io/fix-dns

revert broken dns changes
pull/2152/head
Kslr 2020-01-01 12:21:30 +08:00 committed by GitHub
commit 1cb43035f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 18 deletions

View File

@ -177,16 +177,10 @@ func parseResponse(payload []byte) (*IPRecord, error) {
} }
now := time.Now() now := time.Now()
var ipRecExpire time.Time
if h.RCode != dnsmessage.RCodeSuccess {
// A default TTL, maybe a negtive cache
ipRecExpire = now.Add(time.Second * 120)
}
ipRecord := &IPRecord{ ipRecord := &IPRecord{
ReqID: h.ID, ReqID: h.ID,
RCode: h.RCode, RCode: h.RCode,
Expire: ipRecExpire, Expire: now.Add(time.Second * 600),
} }
L: L:
@ -199,6 +193,15 @@ L:
break break
} }
ttl := ah.TTL
if ttl == 0 {
ttl = 600
}
expire := now.Add(time.Duration(ttl) * time.Second)
if ipRecord.Expire.After(expire) {
ipRecord.Expire = expire
}
switch ah.Type { switch ah.Type {
case dnsmessage.TypeA: case dnsmessage.TypeA:
ans, err := parser.AResource() ans, err := parser.AResource()
@ -221,16 +224,6 @@ L:
} }
continue continue
} }
if ipRecord.Expire.IsZero() {
ttl := ah.TTL
if ttl < 600 {
// at least 10 mins TTL
ipRecord.Expire = now.Add(time.Minute * 10)
} else {
ipRecord.Expire = now.Add(time.Duration(ttl) * time.Second)
}
}
} }
return ipRecord, nil return ipRecord, nil

View File

@ -364,7 +364,7 @@ func (s *Server) lookupIPInternal(domain string, option IPOption) ([]net.IP, err
} }
} }
return nil, dns.ErrEmptyResponse.Base(lastErr) return nil, newError("returning nil for domain ", domain).Base(lastErr)
} }
func init() { func init() {