mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-12-09 13:46:07 +08:00
43 lines
894 B
Go
43 lines
894 B
Go
package rtype
|
|
|
|
import (
|
|
"github.com/StackExchange/dnscontrol/v4/models"
|
|
"github.com/StackExchange/dnscontrol/v4/pkg/rtypecontrol"
|
|
"github.com/miekg/dns"
|
|
)
|
|
|
|
func init() {
|
|
rtypecontrol.Register(&RP{})
|
|
}
|
|
|
|
// RP RR. See RFC 1138, Section 2.2.
|
|
type RP struct {
|
|
dns.RP
|
|
}
|
|
|
|
func (handle *RP) Name() string {
|
|
return "RP"
|
|
}
|
|
|
|
func (handle *RP) FromArgs(dc *models.DomainConfig, rec *models.RecordConfig, args []any) error {
|
|
if err := rtypecontrol.PaveArgs(args[1:], "ss"); err != nil {
|
|
return err
|
|
}
|
|
rec.F = &RP{
|
|
dns.RP{
|
|
Mbox: args[1].(string),
|
|
Txt: args[2].(string),
|
|
},
|
|
}
|
|
|
|
// TODO: Generate friendly Comparable and ZonefilePartial values.
|
|
rec.Comparable = rec.F.(*RP).Mbox + " " + rec.F.(*RP).Txt
|
|
rec.ZonefilePartial = rec.Comparable
|
|
|
|
return nil
|
|
}
|
|
|
|
func (handle *RP) CopyToLegacyFields(rec *models.RecordConfig) {
|
|
rp := rec.F.(*RP)
|
|
_ = rec.SetTarget(rp.Mbox + " " + rp.Txt)
|
|
}
|