mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-11-08 07:20:49 +08:00
CLOUDFLAREAPI: Prevent web UI from displaying warnings about TXT records
This commit is contained in:
parent
6ef0648778
commit
1ca48e2bd6
4 changed files with 12 additions and 6 deletions
|
|
@ -84,6 +84,8 @@ func TestTxtEncode(t *testing.T) {
|
|||
data []string
|
||||
expected string
|
||||
}{
|
||||
{[]string{"simple"}, `"simple"`},
|
||||
{[]string{`"quoted"`}, `"\"quoted\""`},
|
||||
{[]string{}, `""`},
|
||||
{[]string{``}, `""`},
|
||||
{[]string{`foo`}, `"foo"`},
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@ import (
|
|||
func AuditRecords(records []*models.RecordConfig) []error {
|
||||
a := rejectif.Auditor{}
|
||||
|
||||
a.Add("TXT", rejectif.TxtHasTrailingSpace) // Last verified 2022-06-18
|
||||
|
||||
a.Add("TXT", rejectif.TxtIsEmpty) // Last verified 2022-06-18
|
||||
a.Add("TXT", rejectif.TxtIsEmpty) // Last verified 2024-10-27
|
||||
|
||||
return a.Audit(records)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import (
|
|||
"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/printer"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/transform"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/zonecache"
|
||||
"github.com/StackExchange/dnscontrol/v4/providers"
|
||||
"github.com/StackExchange/dnscontrol/v4/providers/cloudflare/rtypes/cfsingleredirect"
|
||||
|
|
@ -871,7 +872,11 @@ func (c *cloudflareProvider) nativeToRecord(domain string, cr cloudflare.DNSReco
|
|||
return nil, fmt.Errorf("unparsable SRV record received from cloudflare: %w", err)
|
||||
}
|
||||
case "TXT":
|
||||
err := rc.SetTargetTXT(cr.Content)
|
||||
s, err := txtutil.ParseQuoted(cr.Content)
|
||||
if err != nil {
|
||||
return rc, err
|
||||
}
|
||||
err = rc.SetTargetTXT(s)
|
||||
return rc, err
|
||||
default:
|
||||
if err := rc.PopulateFromString(rType, cr.Content, domain); err != nil {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
"golang.org/x/net/idna"
|
||||
|
||||
"github.com/StackExchange/dnscontrol/v4/models"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
|
||||
"github.com/StackExchange/dnscontrol/v4/providers/cloudflare/rtypes/cfsingleredirect"
|
||||
)
|
||||
|
||||
|
|
@ -154,7 +155,7 @@ func (c *cloudflareProvider) createRecDiff2(rec *models.RecordConfig, domainID s
|
|||
prio = fmt.Sprintf(" %d ", rec.MxPreference)
|
||||
}
|
||||
if rec.Type == "TXT" {
|
||||
content = rec.GetTargetTXTJoined()
|
||||
content = txtutil.EncodeQuoted(rec.GetTargetTXTJoined())
|
||||
}
|
||||
if rec.Type == "DS" {
|
||||
content = fmt.Sprintf("%d %d %d %s", rec.DsKeyTag, rec.DsAlgorithm, rec.DsDigestType, rec.DsDigest)
|
||||
|
|
@ -229,7 +230,7 @@ func (c *cloudflareProvider) modifyRecord(domainID, recID string, proxied bool,
|
|||
TTL: int(rec.TTL),
|
||||
}
|
||||
if rec.Type == "TXT" {
|
||||
r.Content = rec.GetTargetTXTJoined()
|
||||
r.Content = txtutil.EncodeQuoted(rec.GetTargetTXTJoined())
|
||||
}
|
||||
if rec.Type == "SRV" {
|
||||
r.Data = cfSrvData(rec)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue