mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-20 23:47:21 -05:00
fix(#2211): problem that AAAA query returns A result
This commit is contained in:
parent
fa657b8681
commit
4a663f2b25
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*.DS_Store
|
*.DS_Store
|
||||||
bazel-*
|
bazel-*
|
||||||
|
.idea
|
@ -185,7 +185,6 @@ func (s *DoHNameServer) Cleanup() error {
|
|||||||
|
|
||||||
func (s *DoHNameServer) updateIP(req *dnsRequest, ipRec *IPRecord) {
|
func (s *DoHNameServer) updateIP(req *dnsRequest, ipRec *IPRecord) {
|
||||||
elapsed := time.Since(req.start)
|
elapsed := time.Since(req.start)
|
||||||
newError(s.name, " got answere: ", req.domain, " ", req.reqType, " -> ", ipRec.IP, " ", elapsed).AtInfo().WriteToLog()
|
|
||||||
|
|
||||||
s.Lock()
|
s.Lock()
|
||||||
rec := s.ips[req.domain]
|
rec := s.ips[req.domain]
|
||||||
@ -198,11 +197,19 @@ func (s *DoHNameServer) updateIP(req *dnsRequest, ipRec *IPRecord) {
|
|||||||
updated = true
|
updated = true
|
||||||
}
|
}
|
||||||
case dnsmessage.TypeAAAA:
|
case dnsmessage.TypeAAAA:
|
||||||
|
addr := make([]net.Address, 0)
|
||||||
|
for _, ip := range ipRec.IP {
|
||||||
|
if len(ip.IP()) == net.IPv6len {
|
||||||
|
addr = append(addr, ip)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ipRec.IP = addr
|
||||||
if isNewer(rec.AAAA, ipRec) {
|
if isNewer(rec.AAAA, ipRec) {
|
||||||
rec.AAAA = ipRec
|
rec.AAAA = ipRec
|
||||||
updated = true
|
updated = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
newError(s.name, " got answere: ", req.domain, " ", req.reqType, " -> ", ipRec.IP, " ", elapsed).AtInfo().WriteToLog()
|
||||||
|
|
||||||
if updated {
|
if updated {
|
||||||
s.ips[req.domain] = rec
|
s.ips[req.domain] = rec
|
||||||
|
Loading…
x
Reference in New Issue
Block a user