本文整理汇总了Golang中github.com/miekg/dns.SRV类的典型用法代码示例。如果您正苦于以下问题:Golang SRV类的具体用法?Golang SRV怎么用?Golang SRV使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SRV类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: handleSRVQuery
func (r *resolver) handleSRVQuery(svc string, query *dns.Msg) (*dns.Msg, error) {
srv, ip := r.backend.ResolveService(svc)
if len(srv) == 0 {
return nil, nil
}
if len(srv) != len(ip) {
return nil, fmt.Errorf("invalid reply for SRV query %s", svc)
}
resp := createRespMsg(query)
for i, r := range srv {
rr := new(dns.SRV)
rr.Hdr = dns.RR_Header{Name: svc, Rrtype: dns.TypePTR, Class: dns.ClassINET, Ttl: respTTL}
rr.Port = r.Port
rr.Target = r.Target
resp.Answer = append(resp.Answer, rr)
rr1 := new(dns.A)
rr1.Hdr = dns.RR_Header{Name: r.Target, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: respTTL}
rr1.A = ip[i]
resp.Extra = append(resp.Extra, rr1)
}
return resp, nil
}
开发者ID:jwhonce,项目名称:docker,代码行数:28,代码来源:resolver.go
示例2: Test_convertAnswersToSRV_convertsAnswers
func (s *DNSXmppSuite) Test_convertAnswersToSRV_convertsAnswers(c *C) {
cn := new(dns.CNAME)
srv := new(dns.SRV)
srv.Target = "foo2.com"
in := make([]dns.RR, 2)
in[0] = cn
in[1] = srv
res := convertAnswersToSRV(in)
c.Assert(res, HasLen, 1)
c.Assert(res[0].Target, Equals, "foo2.com")
}
开发者ID:0x27,项目名称:coyim,代码行数:13,代码来源:dns_test.go
示例3: Test_convertAnswerToSRV_returnsAValidNetSRV
func (s *DNSXmppSuite) Test_convertAnswerToSRV_returnsAValidNetSRV(c *C) {
srv := new(dns.SRV)
srv.Target = "foo.com"
srv.Port = 123
srv.Priority = 5
srv.Weight = 42
res := convertAnswerToSRV(srv)
c.Assert(res, Not(IsNil))
c.Assert(res.Target, Equals, "foo.com")
c.Assert(res.Port, Equals, uint16(123))
c.Assert(res.Priority, Equals, uint16(5))
c.Assert(res.Weight, Equals, uint16(42))
}
开发者ID:0x27,项目名称:coyim,代码行数:13,代码来源:dns_test.go
示例4: parseValue
func parseValue(t uint16, value string, h dns.RR_Header) dns.RR {
switch t {
case dns.TypeA:
a := new(dns.A)
a.Hdr = h
a.A, _ = parseA(value)
return a
case dns.TypeAAAA:
aaaa := new(dns.AAAA)
aaaa.Hdr = h
aaaa.AAAA, _ = parseAAAA(value)
return aaaa
case dns.TypeSRV:
srv := new(dns.SRV)
srv.Hdr = h
srv.Priority, srv.Weight, srv.Port, srv.Target, _ = parseSRV(value)
return srv
}
return nil
}
开发者ID:jkingyens,项目名称:skydns2,代码行数:20,代码来源:etcd.go
示例5: 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
}
开发者ID:guilhem,项目名称:netcore,代码行数:34,代码来源:dns.go
注:本文中的github.com/miekg/dns.SRV类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论