vendor-ed skydns
This commit is contained in:
34
vendor/github.com/skynetservices/skydns/server/exchange.go
generated
vendored
Normal file
34
vendor/github.com/skynetservices/skydns/server/exchange.go
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
// Copyright (c) 2014 The SkyDNS Authors. All rights reserved.
|
||||
// Use of this source code is governed by The MIT License (MIT) that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
package server
|
||||
|
||||
import "github.com/miekg/dns"
|
||||
|
||||
// exchangeMsg returns a new dns message based on name, type, bufsize and dnssec.
|
||||
func newExchangeMsg(name string, typ, bufsize uint16, dnssec bool) *dns.Msg {
|
||||
m := new(dns.Msg)
|
||||
m.SetQuestion(name, typ)
|
||||
m.SetEdns0(bufsize, dnssec)
|
||||
return m
|
||||
}
|
||||
|
||||
// exchangeWithRetry sends message m to server, but retries on ServerFailure.
|
||||
func exchangeWithRetry(c *dns.Client, m *dns.Msg, server string) (*dns.Msg, error) {
|
||||
r, _, err := c.Exchange(m, server)
|
||||
if err == nil && r.Rcode == dns.RcodeServerFailure {
|
||||
// redo the query
|
||||
r, _, err = c.Exchange(m, server)
|
||||
}
|
||||
return r, err
|
||||
}
|
||||
|
||||
func (s *server) randomNameserverID(id uint16) int {
|
||||
nsid := 0
|
||||
if s.config.NSRotate {
|
||||
// Use request Id for "random" nameserver selection.
|
||||
nsid = int(id) % len(s.config.Nameservers)
|
||||
}
|
||||
return nsid
|
||||
}
|
||||
Reference in New Issue
Block a user