NS1: TXT records are broken if they contain spaces (#270)

* Integration tests: Add simple TXT tests.
* NS1: Fix bug in TXT record handling.
This commit is contained in:
Tom Limoncelli 2017-11-20 08:53:44 -05:00 committed by GitHub
parent 106790b0d5
commit 2d51cd57ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 3 deletions

View file

@ -236,6 +236,10 @@ func srv(name string, priority, weight, port uint16, target string) *rec {
return r
}
func txt(name, target string) *rec {
return makeRec(name, target, "TXT")
}
func caa(name string, tag string, flag uint8, target string) *rec {
r := makeRec(name, target, "CAA")
r.CaaFlag = flag
@ -423,5 +427,15 @@ func makeTests(t *testing.T) []*TestCase {
)
}
// Case
tests = append(tests, tc("Empty"),
// TXT
tc("Empty"),
tc("Create a TXT", txt("foo", "simple")),
tc("Change a TXT", txt("foo", "changed")),
tc("Create a TXT with spaces", txt("foo", "with spaces")),
tc("Change a TXT with spaces", txt("foo", "with whitespace")),
)
return tests
}

View file

@ -126,10 +126,11 @@ func buildRecord(recs models.Records, domain string, id string) *dns.Record {
Zone: domain,
}
for _, r := range recs {
ans := &dns.Answer{
Rdata: strings.Split(r.Target, " "),
if r.Type == "TXT" {
rec.AddAnswer(&dns.Answer{Rdata: []string{r.Target}})
} else {
rec.AddAnswer(&dns.Answer{Rdata: strings.Split(r.Target, " ")})
}
rec.AddAnswer(ans)
}
return rec
}