DIGITALOCEAN: Improve TXT record handling (#2128)

This commit is contained in:
Tom Limoncelli 2023-03-08 07:59:35 -08:00 committed by GitHub
parent 3d3f15d1d0
commit eb4af05d31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 11 deletions

View file

@ -843,19 +843,18 @@ func makeTests(t *testing.T) []*TestGroup {
// of record. When the provider fixes the bug or changes behavior,
// update the AuditRecords().
tc("TXT with 0-octel string", txt("foo1", "")),
// NB(tlim) 2023-03-07: Removing this test. Nobody does this.
//tc("TXT with 0-octel string", txt("foo1", "")),
// https://github.com/StackExchange/dnscontrol/issues/598
// RFC1035 permits this, but rarely do provider support it.
//clear(),
tc("a 255-byte TXT", txt("foo255", strings.Repeat("C", 255))),
//tc("a 255-byte TXT", txt("foo255", strings.Repeat("C", 255))),
//clear(),
tc("a 256-byte TXT", txt("foo256", strings.Repeat("D", 256))),
//tc("a 256-byte TXT", txt("foo256", strings.Repeat("D", 256))),
//clear(),
tc("a 512-byte TXT", txt("foo512", strings.Repeat("C", 512))),
//tc("a 512-byte TXT", txt("foo512", strings.Repeat("C", 512))),
//clear(),
tc("a 513-byte TXT", txt("foo513", strings.Repeat("D", 513))),
//tc("a 513-byte TXT", txt("foo513", strings.Repeat("D", 513))),
//clear(),
tc("TXT with 1 single-quote", txt("foosq", "quo'te")),

View file

@ -277,12 +277,11 @@ func toRc(domain string, r *godo.DomainRecord) *models.RecordConfig {
CaaFlag: uint8(r.Flags),
}
t.SetLabelFromFQDN(name, domain)
t.SetTarget(target)
switch rtype := r.Type; rtype {
case "TXT":
t.SetTargetTXTfromRFC1035Quoted(target)
t.SetTargetTXT(target)
default:
// nothing additional required
t.SetTarget(target)
}
return t
}
@ -304,7 +303,7 @@ func toReq(dc *models.DomainConfig, rc *models.RecordConfig) *godo.DomainRecordE
priority = int(rc.SrvPriority)
case "TXT":
// TXT records are the one place where DO combines many items into one field.
target = rc.GetTargetField()
target = rc.GetTargetTXTJoined()
default:
// no action required
}