本文整理汇总了Golang中github.com/miekg/dns.SRV.Header方法的典型用法代码示例。如果您正苦于以下问题:Golang SRV.Header方法的具体用法?Golang SRV.Header怎么用?Golang SRV.Header使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/miekg/dns.SRV
的用法示例。
在下文中一共展示了SRV.Header方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: answerSRV
func answerSRV(q *dns.Question, v *DNSValue) dns.RR {
answer := new(dns.SRV)
answer.Header().Name = q.Name
answer.Header().Rrtype = dns.TypeSRV
answer.Header().Class = dns.ClassINET
answer.Priority = 50 // default if not defined
priority, err := strconv.Atoi(v.Attr["priority"])
if err == nil {
answer.Priority = uint16(priority)
}
answer.Weight = 50 // default if not defined
weight, err := strconv.Atoi(v.Attr["weight"])
if err == nil {
answer.Weight = uint16(weight)
}
answer.Port = 0 // default if not defined
port, err := strconv.Atoi(v.Attr["port"])
if err == nil {
answer.Port = uint16(port)
}
if target, ok := v.Attr["target"]; ok {
answer.Target = strings.TrimSuffix(target, ".") + "."
} else if v.Value != "" { // allows for simplified setting
targetParts := strings.Split(v.Value, ":")
answer.Target = strings.TrimSuffix(targetParts[0], ".") + "."
if len(targetParts) > 1 {
port, err := strconv.Atoi(targetParts[1])
if err == nil {
answer.Port = uint16(port)
}
}
}
return answer
}