Force record TTL on alias records
Signed-off-by: Knut Ahlers <knut@ahlers.me>pull/2/head
parent
5a79be553d
commit
a255190005
7
alias.go
7
alias.go
|
@ -45,10 +45,14 @@ func (r *ResponseModifier) WriteMsg(res *dns.Msg) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find and delete CNAME record on that zone, storing the canonical name.
|
// Find and delete CNAME record on that zone, storing the canonical name.
|
||||||
var cname string
|
var (
|
||||||
|
cname string
|
||||||
|
ttl uint32
|
||||||
|
)
|
||||||
for i, rr := range res.Answer {
|
for i, rr := range res.Answer {
|
||||||
if rr.Header().Rrtype == dns.TypeCNAME && rr.Header().Name == zone {
|
if rr.Header().Rrtype == dns.TypeCNAME && rr.Header().Name == zone {
|
||||||
cname = rr.(*dns.CNAME).Target
|
cname = rr.(*dns.CNAME).Target
|
||||||
|
ttl = rr.(*dns.CNAME).Header().Ttl
|
||||||
// Remove the CNAME record
|
// Remove the CNAME record
|
||||||
res.Answer = append(res.Answer[:i], res.Answer[i+1:]...)
|
res.Answer = append(res.Answer[:i], res.Answer[i+1:]...)
|
||||||
break
|
break
|
||||||
|
@ -59,6 +63,7 @@ func (r *ResponseModifier) WriteMsg(res *dns.Msg) error {
|
||||||
for _, rr := range res.Answer {
|
for _, rr := range res.Answer {
|
||||||
if rr.Header().Name == cname {
|
if rr.Header().Name == cname {
|
||||||
rr.Header().Name = zone
|
rr.Header().Name = zone
|
||||||
|
rr.Header().Ttl = ttl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue