RFC2136: add NS record support

Signed-off-by: Dinar Valeev <dinar.valeev@absa.africa>
This commit is contained in:
Dinar Valeev 2021-11-14 17:47:17 +01:00
parent 665ab3cf71
commit 65821fbc65
No known key found for this signature in database
GPG Key ID: 463AD0BA4B193CEE
2 changed files with 12 additions and 1 deletions

View File

@ -176,6 +176,9 @@ OuterLoop:
case dns.TypeTXT:
rrValues = (rr.(*dns.TXT).Txt)
rrType = "TXT"
case dns.TypeNS:
rrValues = []string{rr.(*dns.NS).Ns}
rrType = "NS"
default:
continue // Unhandled record type
}

View File

@ -172,6 +172,11 @@ func TestRfc2136ApplyChanges(t *testing.T) {
RecordType: "TXT",
Targets: []string{"boom"},
},
{
DNSName: "ns.foobar.com",
RecordType: "NS",
Targets: []string{"boom"},
},
},
Delete: []*endpoint.Endpoint{
{
@ -190,13 +195,16 @@ func TestRfc2136ApplyChanges(t *testing.T) {
err = provider.ApplyChanges(context.Background(), p)
assert.NoError(t, err)
assert.Equal(t, 2, len(stub.createMsgs))
assert.Equal(t, 3, len(stub.createMsgs))
assert.True(t, strings.Contains(stub.createMsgs[0].String(), "v1.foo.com"))
assert.True(t, strings.Contains(stub.createMsgs[0].String(), "1.2.3.4"))
assert.True(t, strings.Contains(stub.createMsgs[1].String(), "v1.foobar.com"))
assert.True(t, strings.Contains(stub.createMsgs[1].String(), "boom"))
assert.True(t, strings.Contains(stub.createMsgs[2].String(), "ns.foobar.com"))
assert.True(t, strings.Contains(stub.createMsgs[2].String(), "boom"))
assert.Equal(t, 2, len(stub.updateMsgs))
assert.True(t, strings.Contains(stub.updateMsgs[0].String(), "v2.foo.com"))
assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "v2.foobar.com"))