1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

fix: correct order for dhcid

This commit is contained in:
Florian Ritterhoff
2023-08-22 11:09:50 +02:00
parent 1c5e038c67
commit 3e1e7aeb8e
6 changed files with 14 additions and 14 deletions

View File

@ -182,6 +182,10 @@ func matrixData() *FeatureMatrix {
DomainModifierCaa, DomainModifierCaa,
providers.CanUseCAA, providers.CanUseCAA,
) )
setCapability(
DomainModifierDhcid,
providers.CanUseDHCID,
)
setCapability( setCapability(
DomainModifierDs, DomainModifierDs,
providers.CanUseDS, providers.CanUseDS,
@ -214,10 +218,6 @@ func matrixData() *FeatureMatrix {
DomainModifierTlsa, DomainModifierTlsa,
providers.CanUseTLSA, providers.CanUseTLSA,
) )
setCapability(
DomainModifierDhcid,
providers.CanUseDHCID,
)
setCapability( setCapability(
GetZones, GetZones,
providers.CanGetZones, providers.CanGetZones,

View File

@ -74,6 +74,8 @@ func RRtoRC(rr dns.RR, origin string) (RecordConfig, error) {
err = rc.SetTargetCAA(v.Flag, v.Tag, v.Value) err = rc.SetTargetCAA(v.Flag, v.Tag, v.Value)
case *dns.CNAME: case *dns.CNAME:
err = rc.SetTarget(v.Target) err = rc.SetTarget(v.Target)
case *dns.DHCID:
err = rc.SetTarget(v.Digest)
case *dns.DS: case *dns.DS:
err = rc.SetTargetDS(v.KeyTag, v.Algorithm, v.DigestType, v.Digest) err = rc.SetTargetDS(v.KeyTag, v.Algorithm, v.DigestType, v.Digest)
case *dns.LOC: case *dns.LOC:
@ -96,8 +98,6 @@ func RRtoRC(rr dns.RR, origin string) (RecordConfig, error) {
err = rc.SetTargetTLSA(v.Usage, v.Selector, v.MatchingType, v.Certificate) err = rc.SetTargetTLSA(v.Usage, v.Selector, v.MatchingType, v.Certificate)
case *dns.TXT: case *dns.TXT:
err = rc.SetTargetTXTs(v.Txt) err = rc.SetTargetTXTs(v.Txt)
case *dns.DHCID:
err = rc.SetTarget(v.Digest)
default: default:
return *rc, fmt.Errorf("rrToRecord: Unimplemented zone record type=%s (%v)", rc.Type, rr) return *rc, fmt.Errorf("rrToRecord: Unimplemented zone record type=%s (%v)", rc.Type, rr)
} }

View File

@ -390,6 +390,8 @@ func (rc *RecordConfig) ToRR() dns.RR {
rr.(*dns.CAA).Value = rc.GetTargetField() rr.(*dns.CAA).Value = rc.GetTargetField()
case dns.TypeCNAME: case dns.TypeCNAME:
rr.(*dns.CNAME).Target = rc.GetTargetField() rr.(*dns.CNAME).Target = rc.GetTargetField()
case dns.TypeDHCID:
rr.(*dns.DHCID).Digest = rc.GetTargetField()
case dns.TypeDS: case dns.TypeDS:
rr.(*dns.DS).Algorithm = rc.DsAlgorithm rr.(*dns.DS).Algorithm = rc.DsAlgorithm
rr.(*dns.DS).DigestType = rc.DsDigestType rr.(*dns.DS).DigestType = rc.DsDigestType
@ -446,8 +448,6 @@ func (rc *RecordConfig) ToRR() dns.RR {
rr.(*dns.TLSA).Certificate = rc.GetTargetField() rr.(*dns.TLSA).Certificate = rc.GetTargetField()
case dns.TypeTXT: case dns.TypeTXT:
rr.(*dns.TXT).Txt = rc.TxtStrings rr.(*dns.TXT).Txt = rc.TxtStrings
case dns.TypeDHCID:
rr.(*dns.DHCID).Digest = rc.GetTargetField()
default: default:
panic(fmt.Sprintf("ToRR: Unimplemented rtype %v", rc.Type)) panic(fmt.Sprintf("ToRR: Unimplemented rtype %v", rc.Type))
// We panic so that we quickly find any switch statements // We panic so that we quickly find any switch statements

View File

@ -222,7 +222,7 @@ func checkTargets(rec *models.RecordConfig, domain string) (errs []error) {
} }
case "SRV": case "SRV":
check(checkTarget(target)) check(checkTarget(target))
case "TXT", "IMPORT_TRANSFORM", "CAA", "SSHFP", "TLSA", "DS", "DHCID": case "CAA", "DHCID", "DS", "IMPORT_TRANSFORM", "SSHFP", "TLSA", "TXT":
default: default:
if rec.Metadata["orig_custom_type"] != "" { if rec.Metadata["orig_custom_type"] != "" {
// it is a valid custom type. We perform no validation on target // it is a valid custom type. We perform no validation on target
@ -689,6 +689,7 @@ var providerCapabilityChecks = []pairTypeCapability{
capabilityCheck("AUTODNSSEC", providers.CanAutoDNSSEC), capabilityCheck("AUTODNSSEC", providers.CanAutoDNSSEC),
capabilityCheck("AZURE_ALIAS", providers.CanUseAzureAlias), capabilityCheck("AZURE_ALIAS", providers.CanUseAzureAlias),
capabilityCheck("CAA", providers.CanUseCAA), capabilityCheck("CAA", providers.CanUseCAA),
capabilityCheck("DHCID", providers.CanUseDHCID),
capabilityCheck("LOC", providers.CanUseLOC), capabilityCheck("LOC", providers.CanUseLOC),
capabilityCheck("NAPTR", providers.CanUseNAPTR), capabilityCheck("NAPTR", providers.CanUseNAPTR),
capabilityCheck("PTR", providers.CanUsePTR), capabilityCheck("PTR", providers.CanUsePTR),
@ -697,7 +698,6 @@ var providerCapabilityChecks = []pairTypeCapability{
capabilityCheck("SRV", providers.CanUseSRV), capabilityCheck("SRV", providers.CanUseSRV),
capabilityCheck("SSHFP", providers.CanUseSSHFP), capabilityCheck("SSHFP", providers.CanUseSSHFP),
capabilityCheck("TLSA", providers.CanUseTLSA), capabilityCheck("TLSA", providers.CanUseTLSA),
capabilityCheck("DHCID", providers.CanUseDHCID),
// DS needs special record-level checks // DS needs special record-level checks
{ {

View File

@ -36,6 +36,7 @@ var features = providers.DocumentationNotes{
providers.CanAutoDNSSEC: providers.Can("Just writes out a comment indicating DNSSEC was requested"), providers.CanAutoDNSSEC: providers.Can("Just writes out a comment indicating DNSSEC was requested"),
providers.CanGetZones: providers.Can(), providers.CanGetZones: providers.Can(),
providers.CanUseCAA: providers.Can(), providers.CanUseCAA: providers.Can(),
providers.CanUseDHCID: providers.Can(),
providers.CanUseDS: providers.Can(), providers.CanUseDS: providers.Can(),
providers.CanUseLOC: providers.Can(), providers.CanUseLOC: providers.Can(),
providers.CanUseNAPTR: providers.Can(), providers.CanUseNAPTR: providers.Can(),
@ -44,7 +45,6 @@ var features = providers.DocumentationNotes{
providers.CanUseSRV: providers.Can(), providers.CanUseSRV: providers.Can(),
providers.CanUseSSHFP: providers.Can(), providers.CanUseSSHFP: providers.Can(),
providers.CanUseTLSA: providers.Can(), providers.CanUseTLSA: providers.Can(),
providers.CanUseDHCID: providers.Can(),
providers.CantUseNOPURGE: providers.Cannot(), providers.CantUseNOPURGE: providers.Cannot(),
providers.DocCreateDomains: providers.Can("Driver just maintains list of zone files. It should automatically add missing ones."), providers.DocCreateDomains: providers.Can("Driver just maintains list of zone files. It should automatically add missing ones."),
providers.DocDualHost: providers.Can(), providers.DocDualHost: providers.Can(),

View File

@ -32,6 +32,9 @@ const (
// CanUseCAA indicates the provider can handle CAA records // CanUseCAA indicates the provider can handle CAA records
CanUseCAA CanUseCAA
// CanUseDHCID indicates the provider can handle DHCID records
CanUseDHCID
// CanUseDS indicates that the provider can handle DS record types. This // CanUseDS indicates that the provider can handle DS record types. This
// implies CanUseDSForChildren without specifying the latter explicitly. // implies CanUseDSForChildren without specifying the latter explicitly.
CanUseDS CanUseDS
@ -78,9 +81,6 @@ const (
// DocOfficiallySupported means it is actively used and maintained by stack exchange // DocOfficiallySupported means it is actively used and maintained by stack exchange
DocOfficiallySupported DocOfficiallySupported
// CanUseDHCID indicates the provider can handle DHCID records
CanUseDHCID
) )
var providerCapabilities = map[string]map[Capability]bool{} var providerCapabilities = map[string]map[Capability]bool{}