mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-12-18 06:39:44 +08:00
fixup!
This commit is contained in:
parent
cbbb396026
commit
29dbdbbd5c
5 changed files with 27 additions and 16 deletions
|
|
@ -19,20 +19,27 @@ func (handle *RP) Name() string {
|
||||||
return "RP"
|
return "RP"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FromArgs fills in the RecordConfig from []any, which is typically from a parsed config file.
|
||||||
func (handle *RP) FromArgs(dc *models.DomainConfig, rec *models.RecordConfig, args []any) error {
|
func (handle *RP) FromArgs(dc *models.DomainConfig, rec *models.RecordConfig, args []any) error {
|
||||||
if err := rtypecontrol.PaveArgs(args[1:], "ss"); err != nil {
|
if err := rtypecontrol.PaveArgs(args[1:], "ss"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
rec.F = &RP{
|
fields := &RP{
|
||||||
dns.RP{
|
dns.RP{
|
||||||
Mbox: args[1].(string),
|
Mbox: args[1].(string),
|
||||||
Txt: args[2].(string),
|
Txt: args[2].(string),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Generate friendly Comparable and ZonefilePartial values.
|
return handle.FromStruct(dc, rec, args[0].(string), fields)
|
||||||
rec.Comparable = rec.F.(*RP).Mbox + " " + rec.F.(*RP).Txt
|
}
|
||||||
rec.ZonefilePartial = rec.Comparable
|
|
||||||
|
// FromStruct fills in the RecordConfig from a struct, typically from an API response.
|
||||||
|
func (handle *RP) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, name string, fields any) error {
|
||||||
|
rec.F = fields
|
||||||
|
|
||||||
|
rec.ZonefilePartial = rec.GetTargetRFC1035Quoted()
|
||||||
|
rec.Comparable = rec.ZonefilePartial
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import (
|
||||||
|
|
||||||
"github.com/StackExchange/dnscontrol/v4/models"
|
"github.com/StackExchange/dnscontrol/v4/models"
|
||||||
"github.com/StackExchange/dnscontrol/v4/pkg/domaintags"
|
"github.com/StackExchange/dnscontrol/v4/pkg/domaintags"
|
||||||
"github.com/miekg/dns"
|
|
||||||
"github.com/miekg/dns/dnsutil"
|
"github.com/miekg/dns/dnsutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -74,8 +73,12 @@ func NewRecordConfigFromStruct(name string, ttl uint32, t string, fields any, dc
|
||||||
}
|
}
|
||||||
setRecordNames(rec, dc, name)
|
setRecordNames(rec, dc, name)
|
||||||
|
|
||||||
// Fill in the .F/.Fields* fields.
|
// // Fill in the .F/.Fields* fields.
|
||||||
err := Func[t].FromArgs(dc, rec, []any{name, fields.(*dns.RP).Mbox, fields.(*dns.RP).Txt})
|
// err := Func[t].FromArgs(dc, rec, []any{name, fields.(*dns.RP).Mbox, fields.(*dns.RP).Txt})
|
||||||
|
// if err != nil {
|
||||||
|
// return nil, err
|
||||||
|
// }
|
||||||
|
err := Func[t].FromStruct(dc, rec, name, fields)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ type RType interface {
|
||||||
|
|
||||||
// RecordConfig factory. Updates a RecordConfig's fields based on args.
|
// RecordConfig factory. Updates a RecordConfig's fields based on args.
|
||||||
FromArgs(*models.DomainConfig, *models.RecordConfig, []any) error
|
FromArgs(*models.DomainConfig, *models.RecordConfig, []any) error
|
||||||
|
FromStruct(*models.DomainConfig, *models.RecordConfig, string, any) error
|
||||||
|
|
||||||
CopyToLegacyFields(*models.RecordConfig)
|
CopyToLegacyFields(*models.RecordConfig)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,9 @@ func (handle *CfRedirect) FromArgs(dc *models.DomainConfig, rec *models.RecordCo
|
||||||
return FromArgs_helper(dc, rec, args, 301)
|
return FromArgs_helper(dc, rec, args, 301)
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (handle *CfRedirect) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, fields any) error {
|
func (handle *CfRedirect) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, name string, fields any) error {
|
||||||
// panic("CF_REDIRECT: FromStruct not implemented")
|
panic("CF_REDIRECT: FromStruct not implemented")
|
||||||
// }
|
}
|
||||||
|
|
||||||
func (handle *CfRedirect) CopyToLegacyFields(rec *models.RecordConfig) {
|
func (handle *CfRedirect) CopyToLegacyFields(rec *models.RecordConfig) {
|
||||||
// Nothing needs to be copied. The CLOUDFLAREAPI_SINGLE_REDIRECT FromArgs copies everything needed.
|
// Nothing needs to be copied. The CLOUDFLAREAPI_SINGLE_REDIRECT FromArgs copies everything needed.
|
||||||
|
|
@ -43,9 +43,9 @@ func (handle *CfTempRedirect) FromArgs(dc *models.DomainConfig, rec *models.Reco
|
||||||
return FromArgs_helper(dc, rec, args, 302)
|
return FromArgs_helper(dc, rec, args, 302)
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (handle *CfTempRedirect) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, fields any) error {
|
func (handle *CfTempRedirect) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, name string, fields any) error {
|
||||||
// panic("CF_TEMP_REDIRECT: FromStruct not implemented")
|
panic("CF_TEMP_REDIRECT: FromStruct not implemented")
|
||||||
// }
|
}
|
||||||
|
|
||||||
func (handle *CfTempRedirect) CopyToLegacyFields(rec *models.RecordConfig) {
|
func (handle *CfTempRedirect) CopyToLegacyFields(rec *models.RecordConfig) {
|
||||||
// Nothing needs to be copied. The CLOUDFLAREAPI_SINGLE_REDIRECT FromArgs copies everything needed.
|
// Nothing needs to be copied. The CLOUDFLAREAPI_SINGLE_REDIRECT FromArgs copies everything needed.
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,9 @@ func (handle *SingleRedirectConfig) FromArgs(dc *models.DomainConfig, rec *model
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (handle *SingleRedirectConfig) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, fields any) error {
|
func (handle *SingleRedirectConfig) FromStruct(dc *models.DomainConfig, rec *models.RecordConfig, name string, fields any) error {
|
||||||
// panic("CLOUDFLAREAPI_SINGLE_REDIRECT: FromStruct not implemented")
|
panic("CLOUDFLAREAPI_SINGLE_REDIRECT: FromStruct not implemented")
|
||||||
// }
|
}
|
||||||
|
|
||||||
// targetFromRaw create the display text used for a normal Redirect.
|
// targetFromRaw create the display text used for a normal Redirect.
|
||||||
func targetFromRaw(name string, code uint16, when, then string) string {
|
func targetFromRaw(name string, code uint16, when, then string) string {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue