mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-11-14 12:15:06 +08:00
a7eba97ada
* Preparing for the unexport of Name/NameFQDN/Target * Cleanups
36 lines
1,006 B
Go
36 lines
1,006 B
Go
package models
|
|
|
|
// SetTargetTXT sets the TXT fields when there is 1 string.
|
|
func (rc *RecordConfig) SetTargetTXT(s string) error {
|
|
rc.SetTarget(s)
|
|
rc.TxtStrings = []string{s}
|
|
if rc.Type == "" {
|
|
rc.Type = "TXT"
|
|
}
|
|
if rc.Type != "TXT" {
|
|
panic("assertion failed: SetTargetTXT called when .Type is not TXT")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetTargetTXTs sets the TXT fields when there are many strings.
|
|
func (rc *RecordConfig) SetTargetTXTs(s []string) error {
|
|
rc.SetTarget(s[0])
|
|
rc.TxtStrings = s
|
|
if rc.Type == "" {
|
|
rc.Type = "TXT"
|
|
}
|
|
if rc.Type != "TXT" {
|
|
panic("assertion failed: SetTargetTXT called when .Type is not TXT")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetTargetTXTString is like SetTargetTXT but accepts one big string,
|
|
// which must be parsed into one or more strings based on how it is quoted.
|
|
// Ex: foo << 1 string
|
|
// foo bar << 1 string
|
|
// "foo" "bar" << 2 strings
|
|
func (rc *RecordConfig) SetTargetTXTString(s string) error {
|
|
return rc.SetTargetTXTs(ParseQuotedTxt(s))
|
|
}
|