Set correct TTL
parent
6efd8958b6
commit
0e4026ad14
12
dns64.go
12
dns64.go
|
@ -69,22 +69,34 @@ func (r *ResponseWriter) WriteMsg(res *dns.Msg) error {
|
||||||
|
|
||||||
// modify response.
|
// modify response.
|
||||||
res.MsgHdr.Rcode = dns.RcodeSuccess
|
res.MsgHdr.Rcode = dns.RcodeSuccess
|
||||||
|
nsTtl := uint32(600)
|
||||||
|
for i := 0; i < len(res.Ns); i++ {
|
||||||
|
if res.Ns[i].Header().Rrtype == dns.TypeSOA {
|
||||||
|
nsTtl = res.Ns[i].Header().Ttl
|
||||||
|
}
|
||||||
|
}
|
||||||
res.Answer = res2.Answer
|
res.Answer = res2.Answer
|
||||||
for i := 0; i < len(res.Answer); i++ {
|
for i := 0; i < len(res.Answer); i++ {
|
||||||
ans := res.Answer[i]
|
ans := res.Answer[i]
|
||||||
hdr := ans.Header()
|
hdr := ans.Header()
|
||||||
if hdr.Rrtype == dns.TypeA {
|
if hdr.Rrtype == dns.TypeA {
|
||||||
aaaa, _ := To6(r.Prefix, ans.(*dns.A).A)
|
aaaa, _ := To6(r.Prefix, ans.(*dns.A).A)
|
||||||
|
ttl := nsTtl
|
||||||
|
if ans.Header().Ttl < ttl {
|
||||||
|
ttl = ans.Header().Ttl
|
||||||
|
}
|
||||||
res.Answer[i] = &dns.AAAA{
|
res.Answer[i] = &dns.AAAA{
|
||||||
Hdr: dns.RR_Header{
|
Hdr: dns.RR_Header{
|
||||||
Name: hdr.Name,
|
Name: hdr.Name,
|
||||||
Rrtype: dns.TypeAAAA,
|
Rrtype: dns.TypeAAAA,
|
||||||
Class: hdr.Class,
|
Class: hdr.Class,
|
||||||
|
Ttl: ttl,
|
||||||
},
|
},
|
||||||
AAAA: aaaa,
|
AAAA: aaaa,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
res.Ns = []dns.RR{}
|
||||||
|
|
||||||
return r.ResponseWriter.WriteMsg(res)
|
return r.ResponseWriter.WriteMsg(res)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue