1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

Attempt to add NAPTR support.

This commit is contained in:
Peter Dunaskin
2019-03-28 15:40:13 +01:00
parent 963bd32e20
commit 7566c0428e
15 changed files with 251 additions and 87 deletions

View File

@ -254,6 +254,16 @@ func ptr(name, target string) *rec {
return makeRec(name, target, "PTR")
}
func naptr(name string, order uint16, preference uint16, flags string, service string, regexp string, target string) *rec {
r := makeRec(name, target, "NAPTR")
r.NaptrOrder = order
r.NaptrPreference = preference
r.NaptrFlags = flags
r.NaptrService = service
r.NaptrRegexp = regexp
return r
}
func srv(name string, priority, weight, port uint16, target string) *rec {
r := makeRec(name, target, "SRV")
r.SrvPriority = priority
@ -417,6 +427,23 @@ func makeTests(t *testing.T) []*TestCase {
)
}
// NAPTR
if !providers.ProviderHasCabability(*providerToRun, providers.CanUseNAPTR) {
t.Log("Skipping NAPTR Tests because provider does not support them")
} else {
tests = append(tests, tc("Empty"),
tc("NAPTR record", naptr("example", 100, 10, "U", "E2U+sip", "!^.*$!sip:customer-service@example.com!", "foo.com")),
tc("NAPTR second record", naptr("example", 102, 10, "U", "E2U+email", "!^.*$!mailto:information@example.com!", "foo.com.")),
tc("NAPTR delete record", naptr("example", 102, 10, "U", "E2U+email", "!^.*$!mailto:information@example.com!", "foo.com.")),
tc("NAPTR change target", naptr("example", 102, 10, "U", "E2U+email", "!^.*$!mailto:information@example.com!", "foo2.com.")),
tc("NAPTR change order", naptr("example", 103, 10, "U", "E2U+email", "!^.*$!mailto:information@example.com!", "foo2.com.")),
tc("NAPTR change preference", naptr("example", 103, 20, "U", "E2U+email", "!^.*$!mailto:information@example.com!", "foo2.com.")),
tc("NAPTR change flags", naptr("example", 103, 20, "A", "E2U+email", "!^.*$!mailto:information@example.com!", "foo2.com.")),
tc("NAPTR change service", naptr("example", 103, 20, "A", "E2U+sip", "!^.*$!mailto:information@example.com!", "foo2.com.")),
tc("NAPTR change regexp", naptr("example", 103, 20, "A", "E2U+sip", "!^.*$!sip:customer-service@example.com!", "foo2.com.")),
)
}
// SRV
if !providers.ProviderHasCabability(*providerToRun, providers.CanUseSRV) {
t.Log("Skipping SRV Tests because provider does not support them")
@ -433,7 +460,7 @@ func makeTests(t *testing.T) []*TestCase {
)
}
// SSHFP
// SSHFP
if !providers.ProviderHasCabability(*providerToRun, providers.CanUseSSHFP) {
t.Log("Skipping SSHFP Tests because provider does not support them")
} else {