mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
Fix deSEC long TXT bug (#997)
* Fix deSEC long TXT bug * Update convert.go
This commit is contained in:
@ -4,6 +4,7 @@ package desec
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/StackExchange/dnscontrol/v3/models"
|
"github.com/StackExchange/dnscontrol/v3/models"
|
||||||
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
||||||
@ -24,7 +25,10 @@ func nativeToRecords(n resourceRecord, origin string) (rcs []*models.RecordConfi
|
|||||||
}
|
}
|
||||||
rc.SetLabel(n.Subname, origin)
|
rc.SetLabel(n.Subname, origin)
|
||||||
switch rtype := n.Type; rtype {
|
switch rtype := n.Type; rtype {
|
||||||
default: // "A", "AAAA", "CAA", "NS", "CNAME", "MX", "PTR", "SRV", "TXT"
|
case "TXT":
|
||||||
|
rc.SetTargetTXT(value)
|
||||||
|
rc.TxtNormalize("multistring")
|
||||||
|
default: // "A", "AAAA", "CAA", "NS", "CNAME", "MX", "PTR", "SRV"
|
||||||
if err := rc.PopulateFromString(rtype, value, origin); err != nil {
|
if err := rc.PopulateFromString(rtype, value, origin); err != nil {
|
||||||
panic(fmt.Errorf("unparsable record received from deSEC: %w", err))
|
panic(fmt.Errorf("unparsable record received from deSEC: %w", err))
|
||||||
}
|
}
|
||||||
@ -58,6 +62,9 @@ func recordsToNative(rcs []*models.RecordConfig, origin string) []resourceRecord
|
|||||||
Subname: label,
|
Subname: label,
|
||||||
Records: []string{r.GetTargetCombined()},
|
Records: []string{r.GetTargetCombined()},
|
||||||
}
|
}
|
||||||
|
if r.Type == "TXT" {
|
||||||
|
zr.Records = []string{strings.Join(r.TxtStrings, "")}
|
||||||
|
}
|
||||||
zrs = append(zrs, zr)
|
zrs = append(zrs, zr)
|
||||||
//keys[key] = &zr // This didn't work.
|
//keys[key] = &zr // This didn't work.
|
||||||
keys[key] = &zrs[len(zrs)-1] // This does work. I don't know why.
|
keys[key] = &zrs[len(zrs)-1] // This does work. I don't know why.
|
||||||
|
@ -48,6 +48,7 @@ var features = providers.DocumentationNotes{
|
|||||||
providers.CanUsePTR: providers.Can(),
|
providers.CanUsePTR: providers.Can(),
|
||||||
providers.CanGetZones: providers.Can(),
|
providers.CanGetZones: providers.Can(),
|
||||||
providers.CanAutoDNSSEC: providers.Cannot(),
|
providers.CanAutoDNSSEC: providers.Cannot(),
|
||||||
|
providers.CanUseTXTMulti: providers.Can(),
|
||||||
}
|
}
|
||||||
|
|
||||||
var defaultNameServerNames = []string{
|
var defaultNameServerNames = []string{
|
||||||
|
Reference in New Issue
Block a user