From 2ef6b9d6c51a29bdf6e193f3964701a7d1ecc0dd Mon Sep 17 00:00:00 2001 From: Manatsawin Hanmongkolchai Date: Mon, 14 Aug 2017 20:30:59 +0700 Subject: [PATCH] Added PTR record support for prettyzone (#182) --- providers/bind/prettyzone.go | 6 ++++++ providers/bind/prettyzone_test.go | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/providers/bind/prettyzone.go b/providers/bind/prettyzone.go index 6ddd82a89..e62997a22 100644 --- a/providers/bind/prettyzone.go +++ b/providers/bind/prettyzone.go @@ -67,6 +67,12 @@ func (z *zoneGenData) Less(i, j int) bool { if pa != pb { return pa < pb } + case dns.TypePTR: + ta2, tb2 := a.(*dns.PTR), b.(*dns.PTR) + pa, pb := ta2.Ptr, tb2.Ptr + if pa != pb { + return pa < pb + } case dns.TypeCAA: ta2, tb2 := a.(*dns.CAA), b.(*dns.CAA) // sort by tag diff --git a/providers/bind/prettyzone_test.go b/providers/bind/prettyzone_test.go index fabbc9928..11fab9105 100644 --- a/providers/bind/prettyzone_test.go +++ b/providers/bind/prettyzone_test.go @@ -181,6 +181,27 @@ var testdataZFSRV = `$TTL 300 IN SRV 10 10 9999 foo.com. ` +func TestWriteZoneFilePtr(t *testing.T) { + //exhibits explicit ttls and long name + r1, _ := dns.NewRR(`bosun.org. 300 IN PTR chell.bosun.org`) + r2, _ := dns.NewRR(`bosun.org. 300 IN PTR barney.bosun.org.`) + r3, _ := dns.NewRR(`bosun.org. 300 IN PTR alex.bosun.org.`) + buf := &bytes.Buffer{} + WriteZoneFile(buf, []dns.RR{r1, r2, r3}, "bosun.org") + if buf.String() != testdataZFPTR { + t.Log(buf.String()) + t.Log(testdataZFPTR) + t.Fatalf("Zone file does not match.") + } + parseAndRegen(t, buf, testdataZFPTR) +} + +var testdataZFPTR = `$TTL 300 +@ IN PTR alex.bosun.org. + IN PTR barney.bosun.org. + IN PTR chell.bosun.org. +` + func TestWriteZoneFileCaa(t *testing.T) { //exhibits explicit ttls and long name r1, _ := dns.NewRR(`bosun.org. 300 IN CAA 0 issuewild ";"`)