Support RFC 7505 "null MX" (#702) (#703)

* Fix #702: Spurious null MX changes on CloudFlare

* Test roundtripping null MX on Cloudflare

* Use an if instead of TrimSuffix

* Add other providers that support RFC 7505

* Suppress test for non-compliant providers
This commit is contained in:
PJ Eby 2020-03-25 09:53:28 -04:00 committed by GitHub
parent 50d52775f8
commit a3ef53574c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View file

@ -609,6 +609,11 @@ func makeTests(t *testing.T) []*TestGroup {
tc("Record pointing to @", mx("foo", 8, "**current-domain**")),
),
testgroup("Null MX",
not("AZURE_DNS", "GANDI_V5", "NAMEDOTCOM", "DIGITALOCEAN"), // These providers don't support RFC 7505
tc("Null MX", mx("@", 0, ".")),
),
testgroup("NS",
not("DNSIMPLE", "EXOSCALE"),
// DNSIMPLE: Does not support NS records nor subdomains.

View file

@ -541,7 +541,9 @@ type cfRecord struct {
func (c *cfRecord) nativeToRecord(domain string) *models.RecordConfig {
// normalize cname,mx,ns records with dots to be consistent with our config format.
if c.Type == "CNAME" || c.Type == "MX" || c.Type == "NS" || c.Type == "SRV" {
c.Content = dnsutil.AddOrigin(c.Content+".", domain)
if c.Content != "." {
c.Content = c.Content + "."
}
}
rc := &models.RecordConfig{