mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
MAINT: Put some target-related warnings behind a flag (#1541)
* Cleanup * wip!
This commit is contained in:
@ -9,36 +9,29 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
/* .target is kind of a mess.
|
/* .target is kind of a mess.
|
||||||
For simple rtypes it is the record's value. (i.e. for an A record
|
If an rType has more than one field, one field goes in .target and the remaining are stored in bespoke fields.
|
||||||
it is the IP address).
|
Not the best design, but we're stuck with it until we re-do RecordConfig, possibly using generics.
|
||||||
For complex rtypes (like an MX record has a preference and a value)
|
|
||||||
it might be a space-delimited string with all the parameters, or it
|
|
||||||
might just be the hostname.
|
|
||||||
|
|
||||||
This was a bad design decision that I regret. Eventually we will eliminate this
|
|
||||||
field and replace it with setters/getters. The setters/getters are below
|
|
||||||
so that it is easy to do things the right way in preparation.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Set debugWarnTxtField to true if you want a warning when
|
||||||
|
// GetTargetField is called on a TXT record.
|
||||||
|
// GetTargetField works fine on TXT records for casual output but it
|
||||||
|
// is often better to access .TxtStrings directly or call
|
||||||
|
// GetTargetRFC1035Quoted() for nicely quoted text.
|
||||||
|
var debugWarnTxtField = false
|
||||||
|
|
||||||
// GetTargetField returns the target. There may be other fields (for example
|
// GetTargetField returns the target. There may be other fields (for example
|
||||||
// an MX record also has a .MxPreference field.
|
// an MX record also has a .MxPreference field.
|
||||||
func (rc *RecordConfig) GetTargetField() string {
|
func (rc *RecordConfig) GetTargetField() string {
|
||||||
//if rc.Type == "TXT" {
|
if debugWarnTxtField {
|
||||||
// fmt.Printf("DEBUG: WARNING: GetTargetField called on TXT record is usually wrong: %q\n", rc.target)
|
if rc.Type == "TXT" {
|
||||||
// //debug.PrintStack()
|
fmt.Printf("DEBUG: WARNING: GetTargetField called on TXT record is frequently wrong: %q\n", rc.target)
|
||||||
//}
|
//debug.PrintStack()
|
||||||
|
}
|
||||||
|
}
|
||||||
return rc.target
|
return rc.target
|
||||||
}
|
}
|
||||||
|
|
||||||
// // GetTargetSingle returns the target for types that have a single value target
|
|
||||||
// // and panics for all others.
|
|
||||||
// func (rc *RecordConfig) GetTargetSingle() string {
|
|
||||||
// if rc.Type == "MX" || rc.Type == "SRV" || rc.Type == "CAA" || rc.Type == "TLSA" || rc.Type == "TXT" {
|
|
||||||
// panic("TargetSingle called on a type with a multi-parameter rtype.")
|
|
||||||
// }
|
|
||||||
// return rc.target
|
|
||||||
// }
|
|
||||||
|
|
||||||
// GetTargetIP returns the net.IP stored in .target.
|
// GetTargetIP returns the net.IP stored in .target.
|
||||||
func (rc *RecordConfig) GetTargetIP() net.IP {
|
func (rc *RecordConfig) GetTargetIP() net.IP {
|
||||||
if rc.Type != "A" && rc.Type != "AAAA" {
|
if rc.Type != "A" && rc.Type != "AAAA" {
|
||||||
@ -91,6 +84,8 @@ func (rc *RecordConfig) zoneFileQuoted() string {
|
|||||||
return full[len(header):]
|
return full[len(header):]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTargetRFC1035Quoted returns the target as it would be in an
|
||||||
|
// RFC1035-style zonefile.
|
||||||
func (rc *RecordConfig) GetTargetRFC1035Quoted() string {
|
func (rc *RecordConfig) GetTargetRFC1035Quoted() string {
|
||||||
return rc.zoneFileQuoted()
|
return rc.zoneFileQuoted()
|
||||||
}
|
}
|
||||||
@ -149,10 +144,3 @@ func (rc *RecordConfig) SetTargetIP(ip net.IP) error {
|
|||||||
rc.SetTarget(ip.String())
|
rc.SetTarget(ip.String())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// // SetTargetFQDN sets the target to a string, verifying this is an appropriate rtype.
|
|
||||||
// func (rc *RecordConfig) SetTargetFQDN(target string) error {
|
|
||||||
// // TODO(tlim): Verify the rtype is appropriate for an hostname.
|
|
||||||
// rc.Target = target
|
|
||||||
// return nil
|
|
||||||
// }
|
|
||||||
|
Reference in New Issue
Block a user