diff --git a/providers/azuredns/azureDnsProvider.go b/providers/azuredns/azureDnsProvider.go index 0ebb79a96d..537d1d08f9 100644 --- a/providers/azuredns/azureDnsProvider.go +++ b/providers/azuredns/azureDnsProvider.go @@ -14,6 +14,7 @@ import ( "github.com/StackExchange/dnscontrol/v4/models" "github.com/StackExchange/dnscontrol/v4/pkg/diff2" "github.com/StackExchange/dnscontrol/v4/pkg/printer" + "github.com/StackExchange/dnscontrol/v4/pkg/txtutil" "github.com/StackExchange/dnscontrol/v4/providers" ) @@ -524,7 +525,10 @@ func (a *azurednsProvider) recordToNativeDiff2(recordKey models.RecordKey, recor // Empty TXT record needs to have no value set in it's properties tt := rec.GetTargetField() if tt != "" { - txts := []*string{to.StringPtr(tt)} + var txts []*string + for _, t := range txtutil.ToChunks(tt) { + txts = append(txts, to.StringPtr(t)) + } recordSet.Properties.TxtRecords = append(recordSet.Properties.TxtRecords, &adns.TxtRecord{Value: txts}) } case "MX": diff --git a/providers/gcloud/gcloudProvider.go b/providers/gcloud/gcloudProvider.go index d2a92ac5da..2d6e9a2342 100644 --- a/providers/gcloud/gcloudProvider.go +++ b/providers/gcloud/gcloudProvider.go @@ -12,6 +12,7 @@ import ( "github.com/StackExchange/dnscontrol/v4/models" "github.com/StackExchange/dnscontrol/v4/pkg/diff" "github.com/StackExchange/dnscontrol/v4/pkg/printer" + "github.com/StackExchange/dnscontrol/v4/pkg/txtutil" "github.com/StackExchange/dnscontrol/v4/providers" gauth "golang.org/x/oauth2/google" gdns "google.golang.org/api/dns/v1" @@ -303,7 +304,12 @@ func (g *gcloudProvider) GetZoneRecordsCorrections(dc *models.DomainConfig, exis } for _, r := range dc.Records { if keyForRec(r) == ck { - newRRs.Rrdatas = append(newRRs.Rrdatas, r.GetTargetCombined()) + if ck.Type == "TXT" { + chunks := txtutil.ToChunks(r.GetTargetField()) + newRRs.Rrdatas = append(newRRs.Rrdatas, chunks...) + } else { + newRRs.Rrdatas = append(newRRs.Rrdatas, r.GetTargetCombined()) + } newRRs.Ttl = int64(r.TTL) } }