all: gometalinter (#843)
* kubernetes/reverse: remove deadcode * deadcode in errors and kubernetes removed * unnecessary conversion * constants * proxy: time.Since() * simplications * static check * Disable test/external_test
This commit is contained in:
parent
964f04f443
commit
bcb2eb1ecc
25 changed files with 105 additions and 150 deletions
|
@ -187,7 +187,8 @@ func (s *Server) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg)
|
|||
|
||||
q := r.Question[0].Name
|
||||
b := make([]byte, len(q))
|
||||
off, end := 0, false
|
||||
var off int
|
||||
var end bool
|
||||
|
||||
var dshandler *Config
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ func setup(c *caddy.Controller) error {
|
|||
|
||||
func autoParse(c *caddy.Controller) (Auto, error) {
|
||||
var a = Auto{
|
||||
loader: loader{template: "${1}", re: regexp.MustCompile(`db\.(.*)`), duration: time.Duration(60 * time.Second)},
|
||||
loader: loader{template: "${1}", re: regexp.MustCompile(`db\.(.*)`), duration: 60 * time.Second},
|
||||
Zones: &Zones{},
|
||||
}
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (rec
|
|||
// Internal name, we should have some info on them, either v4 or v6
|
||||
// Clients expect a complete answer, because we are a recursor in their view.
|
||||
state1 := state.NewWithQuestion(srv.Target, dns.TypeA)
|
||||
addr, debugAddr, e1 := A(b, zone, state1, nil, Options(opt))
|
||||
addr, debugAddr, e1 := A(b, zone, state1, nil, opt)
|
||||
if e1 == nil {
|
||||
extra = append(extra, addr...)
|
||||
debug = append(debug, debugAddr...)
|
||||
|
|
|
@ -25,7 +25,7 @@ func TestCacheSet(t *testing.T) {
|
|||
state := request.Request{Req: m}
|
||||
k := hash(m.Answer) // calculate *before* we add the sig
|
||||
d := New([]string{"miek.nl."}, []*DNSKEY{dnskey}, nil, c)
|
||||
m = d.Sign(state, "miek.nl.", time.Now().UTC())
|
||||
d.Sign(state, "miek.nl.", time.Now().UTC())
|
||||
|
||||
_, ok := d.get(k)
|
||||
if !ok {
|
||||
|
|
|
@ -2,9 +2,10 @@ package dnstap
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"golang.org/x/net/context"
|
||||
"io"
|
||||
|
||||
"golang.org/x/net/context"
|
||||
|
||||
"github.com/coredns/coredns/middleware"
|
||||
"github.com/coredns/coredns/middleware/dnstap/msg"
|
||||
"github.com/coredns/coredns/middleware/dnstap/taprw"
|
||||
|
@ -33,10 +34,10 @@ func (h Dnstap) TapMessage(m *tap.Message) error {
|
|||
}
|
||||
|
||||
func (h Dnstap) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
|
||||
rw := taprw.ResponseWriter{ResponseWriter: w, Taper: &h, Query: r, Pack: h.Pack}
|
||||
rw := &taprw.ResponseWriter{ResponseWriter: w, Taper: &h, Query: r, Pack: h.Pack}
|
||||
rw.QueryEpoch()
|
||||
|
||||
code, err := middleware.NextOrFailure(h.Name(), h.Next, ctx, &rw, r)
|
||||
code, err := middleware.NextOrFailure(h.Name(), h.Next, ctx, rw, r)
|
||||
if err != nil {
|
||||
// ignore dnstap errors
|
||||
return code, err
|
||||
|
|
|
@ -65,7 +65,7 @@ func parseErratic(c *caddy.Controller) (*Erratic, error) {
|
|||
|
||||
// Defaults.
|
||||
e.delay = 2
|
||||
e.duration = time.Duration(100 * time.Millisecond)
|
||||
e.duration = 100 * time.Millisecond
|
||||
if len(args) == 0 {
|
||||
continue
|
||||
}
|
||||
|
|
|
@ -76,11 +76,4 @@ func (h errorHandler) recovery(ctx context.Context, w dns.ResponseWriter, r *dns
|
|||
h.Log.Printf(panicMsg)
|
||||
}
|
||||
|
||||
// debugMsg creates a debug message that gets send back to the client.
|
||||
func debugMsg(rcode int, r *dns.Msg) *dns.Msg {
|
||||
answer := new(dns.Msg)
|
||||
answer.SetRcode(r, rcode)
|
||||
return answer
|
||||
}
|
||||
|
||||
const timeFormat = "02/Jan/2006:15:04:05 -0700"
|
||||
|
|
|
@ -231,7 +231,7 @@ func (z *Zone) Lookup(state request.Request, qname string) ([]dns.RR, []dns.RR,
|
|||
|
||||
ret := z.soa(do)
|
||||
if do {
|
||||
deny, found := z.Tree.Prev(qname)
|
||||
deny, _ := z.Tree.Prev(qname) // TODO(miek): *found* was not used here.
|
||||
nsec := z.typeFromElem(deny, dns.TypeNSEC, do)
|
||||
ret = append(ret, nsec...)
|
||||
|
||||
|
|
|
@ -61,12 +61,12 @@ func notify(zone string, to []string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func notifyAddr(c *dns.Client, m *dns.Msg, s string) (err error) {
|
||||
ret := new(dns.Msg)
|
||||
func notifyAddr(c *dns.Client, m *dns.Msg, s string) error {
|
||||
var err error
|
||||
|
||||
code := dns.RcodeServerFailure
|
||||
for i := 0; i < 3; i++ {
|
||||
ret, _, err = c.Exchange(m, s)
|
||||
ret, _, err := c.Exchange(m, s)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
|
|
@ -51,11 +51,10 @@ type dnsControl struct {
|
|||
|
||||
selector *labels.Selector
|
||||
|
||||
svcController *cache.Controller
|
||||
podController *cache.Controller
|
||||
nsController *cache.Controller
|
||||
epController *cache.Controller
|
||||
nodeController *cache.Controller
|
||||
svcController *cache.Controller
|
||||
podController *cache.Controller
|
||||
nsController *cache.Controller
|
||||
epController *cache.Controller
|
||||
|
||||
svcLister cache.StoreToServiceLister
|
||||
podLister cache.StoreToPodLister
|
||||
|
|
|
@ -273,32 +273,32 @@ func TestServeDNS(t *testing.T) {
|
|||
k.Next = testHandler(nextMWMap)
|
||||
|
||||
ctx := context.TODO()
|
||||
runServeDNSTests(t, dnsTestCases, k, ctx)
|
||||
runServeDNSTests(t, autopathCases, k, ctx)
|
||||
runServeDNSTests(t, autopathBareSearch, k, ctx)
|
||||
runServeDNSTests(ctx, t, dnsTestCases, k)
|
||||
runServeDNSTests(ctx, t, autopathCases, k)
|
||||
runServeDNSTests(ctx, t, autopathBareSearch, k)
|
||||
|
||||
//Set PodMode to Disabled
|
||||
k.PodMode = PodModeDisabled
|
||||
runServeDNSTests(t, podModeDisabledCases, k, ctx)
|
||||
runServeDNSTests(ctx, t, podModeDisabledCases, k)
|
||||
//Set PodMode to Insecure
|
||||
k.PodMode = PodModeInsecure
|
||||
runServeDNSTests(t, podModeInsecureCases, k, ctx)
|
||||
runServeDNSTests(ctx, t, podModeInsecureCases, k)
|
||||
//Set PodMode to Verified
|
||||
k.PodMode = PodModeVerified
|
||||
runServeDNSTests(t, podModeVerifiedCases, k, ctx)
|
||||
runServeDNSTests(ctx, t, podModeVerifiedCases, k)
|
||||
|
||||
// Set ndots to 2 for the ndots test cases
|
||||
k.AutoPath.NDots = 2
|
||||
runServeDNSTests(t, autopath2NDotsCases, k, ctx)
|
||||
runServeDNSTests(ctx, t, autopath2NDotsCases, k)
|
||||
k.AutoPath.NDots = defautNdots
|
||||
// Disable the NXDOMAIN override (enabled by default)
|
||||
k.OnNXDOMAIN = dns.RcodeNameError
|
||||
runServeDNSTests(t, autopathCases, k, ctx)
|
||||
runServeDNSTests(t, autopathBareSearchExpectNameErr, k, ctx)
|
||||
runServeDNSTests(ctx, t, autopathCases, k)
|
||||
runServeDNSTests(ctx, t, autopathBareSearchExpectNameErr, k)
|
||||
|
||||
}
|
||||
|
||||
func runServeDNSTests(t *testing.T, dnsTestCases map[string](*test.Case), k Kubernetes, ctx context.Context) {
|
||||
func runServeDNSTests(ctx context.Context, t *testing.T, dnsTestCases map[string](*test.Case), k Kubernetes) {
|
||||
for testname, tc := range dnsTestCases {
|
||||
testname = "\nTest Case \"" + testname + "\""
|
||||
r := tc.Msg()
|
||||
|
|
|
@ -100,13 +100,12 @@ type recordRequest struct {
|
|||
}
|
||||
|
||||
var (
|
||||
errNoItems = errors.New("no items found")
|
||||
errNsNotExposed = errors.New("namespace is not exposed")
|
||||
errInvalidRequest = errors.New("invalid query name")
|
||||
errZoneNotFound = errors.New("zone not found")
|
||||
errAPIBadPodType = errors.New("expected type *api.Pod")
|
||||
errPodsDisabled = errors.New("pod records disabled")
|
||||
errResolvConfReadErr = errors.New("resolv.conf read error")
|
||||
errNoItems = errors.New("no items found")
|
||||
errNsNotExposed = errors.New("namespace is not exposed")
|
||||
errInvalidRequest = errors.New("invalid query name")
|
||||
errZoneNotFound = errors.New("zone not found")
|
||||
errAPIBadPodType = errors.New("expected type *api.Pod")
|
||||
errPodsDisabled = errors.New("pod records disabled")
|
||||
)
|
||||
|
||||
// Services implements the ServiceBackend interface.
|
||||
|
@ -468,13 +467,6 @@ func (k *Kubernetes) getRecordsForK8sItems(services []service, pods []pod, r rec
|
|||
return records
|
||||
}
|
||||
|
||||
func ipFromPodName(podname string) string {
|
||||
if strings.Count(podname, "-") == 3 && !strings.Contains(podname, "--") {
|
||||
return strings.Replace(podname, "-", ".", -1)
|
||||
}
|
||||
return strings.Replace(podname, "-", ":", -1)
|
||||
}
|
||||
|
||||
func (k *Kubernetes) findPodWithIP(ip string) (p *api.Pod) {
|
||||
if !k.AutoPath.Enabled {
|
||||
return nil
|
||||
|
|
|
@ -260,23 +260,6 @@ func TestEndpointHostname(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestIpFromPodName(t *testing.T) {
|
||||
var tests = []struct {
|
||||
ip string
|
||||
expected string
|
||||
}{
|
||||
{"10-11-12-13", "10.11.12.13"},
|
||||
{"1-2-3-4", "1.2.3.4"},
|
||||
{"1-2-3--A-B-C", "1:2:3::A:B:C"},
|
||||
}
|
||||
for _, test := range tests {
|
||||
result := ipFromPodName(test.ip)
|
||||
if result != test.expected {
|
||||
t.Errorf("Expected ip for podname '%v' to be '%v', but got '%v'", test.ip, test.expected, result)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type APIConnServiceTest struct{}
|
||||
|
||||
func (APIConnServiceTest) Run() { return }
|
||||
|
|
|
@ -242,7 +242,6 @@ func kubernetesParse(c *caddy.Controller) (*Kubernetes, error) {
|
|||
|
||||
const (
|
||||
defaultResyncPeriod = 5 * time.Minute
|
||||
defaultPodMode = PodModeDisabled
|
||||
defautNdots = 0
|
||||
defaultResolvConfFile = "/etc/resolv.conf"
|
||||
defaultOnNXDOMAIN = dns.RcodeSuccess
|
||||
|
|
|
@ -54,7 +54,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -70,7 +70,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -87,7 +87,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -105,7 +105,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -123,7 +123,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
1,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -141,7 +141,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
2,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -159,7 +159,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
30 * time.Second,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -177,7 +177,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
15 * time.Minute,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -195,7 +195,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"environment=prod",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -213,7 +213,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"application=nginx,environment in (production,qa,staging)",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -235,7 +235,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
2,
|
||||
15 * time.Minute,
|
||||
"application=nginx,environment in (production,qa,staging)",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
true,
|
||||
nil,
|
||||
|
@ -252,7 +252,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
-1,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -268,7 +268,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -286,7 +286,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
-1,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -304,7 +304,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
-1,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -322,7 +322,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
0 * time.Minute,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -340,7 +340,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
0 * time.Second,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -358,7 +358,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
0 * time.Second,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -376,7 +376,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
0 * time.Second,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -394,7 +394,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
0 * time.Second,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -489,7 +489,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
[]net.IPNet{parseCidr("10.0.0.0/24"), parseCidr("10.0.1.0/24")},
|
||||
false,
|
||||
nil,
|
||||
|
@ -508,7 +508,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -527,7 +527,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -546,7 +546,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
[]string{"13.14.15.16:53"},
|
||||
|
@ -565,7 +565,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -585,7 +585,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -607,7 +607,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -626,7 +626,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -650,7 +650,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -668,7 +668,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -686,7 +686,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
@ -704,7 +704,7 @@ func TestKubernetesParse(t *testing.T) {
|
|||
0,
|
||||
defaultResyncPeriod,
|
||||
"",
|
||||
defaultPodMode,
|
||||
PodModeDisabled,
|
||||
nil,
|
||||
false,
|
||||
nil,
|
||||
|
|
|
@ -69,7 +69,7 @@ type (
|
|||
func Scrape(t *testing.T, url string) []*MetricFamily {
|
||||
mfChan := make(chan *dto.MetricFamily, 1024)
|
||||
|
||||
go fetchMetricFamilies(t, url, mfChan)
|
||||
go fetchMetricFamilies(url, mfChan)
|
||||
|
||||
result := []*MetricFamily{}
|
||||
for mf := range mfChan {
|
||||
|
@ -177,20 +177,20 @@ func makeBuckets(m *dto.Metric) map[string]string {
|
|||
return result
|
||||
}
|
||||
|
||||
func fetchMetricFamilies(t *testing.T, url string, ch chan<- *dto.MetricFamily) {
|
||||
func fetchMetricFamilies(url string, ch chan<- *dto.MetricFamily) {
|
||||
defer close(ch)
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("creating GET request for URL %q failed: %s", url, err)
|
||||
return
|
||||
}
|
||||
req.Header.Add("Accept", acceptHeader)
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
t.Fatalf("executing GET request for URL %q failed: %s", url, err)
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
t.Fatalf("GET request for URL %q returned HTTP status %s", url, resp.Status)
|
||||
return
|
||||
}
|
||||
|
||||
mediatype, params, err := mime.ParseMediaType(resp.Header.Get("Content-Type"))
|
||||
|
@ -203,7 +203,7 @@ func fetchMetricFamilies(t *testing.T, url string, ch chan<- *dto.MetricFamily)
|
|||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
t.Fatalf("reading metric family protocol buffer failed: %s", err)
|
||||
return
|
||||
}
|
||||
ch <- mf
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ func fetchMetricFamilies(t *testing.T, url string, ch chan<- *dto.MetricFamily)
|
|||
var parser expfmt.TextParser
|
||||
metricFamilies, err := parser.TextToMetricFamilies(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatal("reading text format failed:", err)
|
||||
return
|
||||
}
|
||||
for _, mf := range metricFamilies {
|
||||
ch <- mf
|
||||
|
|
|
@ -60,7 +60,7 @@ func New(r *dns.Msg, rr *dnsrecorder.Recorder, emptyValue string) Replacer {
|
|||
|
||||
// Header placeholders (case-insensitive)
|
||||
rep.replacements[headerReplacer+"id}"] = strconv.Itoa(int(r.Id))
|
||||
rep.replacements[headerReplacer+"opcode}"] = strconv.Itoa(int(r.Opcode))
|
||||
rep.replacements[headerReplacer+"opcode}"] = strconv.Itoa(r.Opcode)
|
||||
rep.replacements[headerReplacer+"do}"] = boolToString(req.Do())
|
||||
rep.replacements[headerReplacer+"bufsize}"] = strconv.Itoa(req.Size())
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ func (p Proxy) lookup(state request.Request) (*dns.Msg, error) {
|
|||
|
||||
// Since Select() should give us "up" hosts, keep retrying
|
||||
// hosts until timeout (or until we get a nil host).
|
||||
for time.Now().Sub(start) < tryDuration {
|
||||
for time.Since(start) < tryDuration {
|
||||
host := upstream.Select()
|
||||
if host == nil {
|
||||
return nil, errUnreachable
|
||||
|
|
|
@ -109,7 +109,7 @@ func (p Proxy) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (
|
|||
|
||||
// Since Select() should give us "up" hosts, keep retrying
|
||||
// hosts until timeout (or until we get a nil host).
|
||||
for time.Now().Sub(start) < tryDuration {
|
||||
for time.Since(start) < tryDuration {
|
||||
host := upstream.Select()
|
||||
if host == nil {
|
||||
|
||||
|
|
|
@ -74,25 +74,6 @@ func (network *network) ipToHostname(ip net.IP) (name string) {
|
|||
return strings.Replace(network.Template, templateNameIP, name, 1)
|
||||
}
|
||||
|
||||
// just the same from net.ip package, but with uint8
|
||||
func uitoa(val uint8) string {
|
||||
if val == 0 {
|
||||
// avoid string allocation
|
||||
return "0"
|
||||
}
|
||||
var buf [20]byte // big enough for 64bit value base 10
|
||||
i := len(buf) - 1
|
||||
for val >= 10 {
|
||||
q := val / 10
|
||||
buf[i] = byte('0' + val - q*10)
|
||||
i--
|
||||
val = q
|
||||
}
|
||||
// val < 10
|
||||
buf[i] = byte('0' + val)
|
||||
return string(buf[i:])
|
||||
}
|
||||
|
||||
type networks []network
|
||||
|
||||
func (n networks) Len() int { return len(n) }
|
||||
|
|
|
@ -37,20 +37,21 @@ func (rule *edns0NsidRule) Rewrite(r *dns.Msg) Result {
|
|||
result := RewriteIgnored
|
||||
o := setupEdns0Opt(r)
|
||||
found := false
|
||||
Option:
|
||||
for _, s := range o.Option {
|
||||
switch e := s.(type) {
|
||||
case *dns.EDNS0_NSID:
|
||||
if rule.action == "replace" || rule.action == "set" {
|
||||
if rule.action == Replace || rule.action == Set {
|
||||
e.Nsid = "" // make sure it is empty for request
|
||||
result = RewriteDone
|
||||
}
|
||||
found = true
|
||||
break
|
||||
break Option
|
||||
}
|
||||
}
|
||||
|
||||
// add option if not found
|
||||
if !found && (rule.action == "append" || rule.action == "set") {
|
||||
if !found && (rule.action == Append || rule.action == Set) {
|
||||
o.SetDo(true)
|
||||
o.Option = append(o.Option, &dns.EDNS0_NSID{Code: dns.EDNS0NSID, Nsid: ""})
|
||||
result = RewriteDone
|
||||
|
@ -68,7 +69,7 @@ func (rule *edns0LocalRule) Rewrite(r *dns.Msg) Result {
|
|||
switch e := s.(type) {
|
||||
case *dns.EDNS0_LOCAL:
|
||||
if rule.code == e.Code {
|
||||
if rule.action == "replace" || rule.action == "set" {
|
||||
if rule.action == Replace || rule.action == Set {
|
||||
e.Data = rule.data
|
||||
result = RewriteDone
|
||||
}
|
||||
|
@ -79,7 +80,7 @@ func (rule *edns0LocalRule) Rewrite(r *dns.Msg) Result {
|
|||
}
|
||||
|
||||
// add option if not found
|
||||
if !found && (rule.action == "append" || rule.action == "set") {
|
||||
if !found && (rule.action == Append || rule.action == Set) {
|
||||
o.SetDo(true)
|
||||
var opt dns.EDNS0_LOCAL
|
||||
opt.Code = rule.code
|
||||
|
@ -100,9 +101,9 @@ func newEdns0Rule(args ...string) (Rule, error) {
|
|||
ruleType := strings.ToLower(args[0])
|
||||
action := strings.ToLower(args[1])
|
||||
switch action {
|
||||
case "append":
|
||||
case "replace":
|
||||
case "set":
|
||||
case Append:
|
||||
case Replace:
|
||||
case Set:
|
||||
default:
|
||||
return nil, fmt.Errorf("invalid action: %q", action)
|
||||
}
|
||||
|
@ -139,3 +140,10 @@ func newEdns0LocalRule(action, code, data string) (*edns0LocalRule, error) {
|
|||
|
||||
return &edns0LocalRule{action: action, code: uint16(c), data: decoded}, nil
|
||||
}
|
||||
|
||||
// These are all defined actions.
|
||||
const (
|
||||
Replace = "replace"
|
||||
Set = "set"
|
||||
Append = "append"
|
||||
)
|
||||
|
|
|
@ -97,7 +97,7 @@ func traceParse(c *caddy.Controller) (*trace, error) {
|
|||
func normalizeEndpoint(epType, ep string) (string, error) {
|
||||
switch epType {
|
||||
case "zipkin":
|
||||
if strings.Index(ep, "http") == -1 {
|
||||
if !strings.Contains(ep, "http") {
|
||||
ep = "http://" + ep + "/api/v1/spans"
|
||||
}
|
||||
return ep, nil
|
||||
|
|
|
@ -56,10 +56,8 @@ func (t *trace) setupZipkin() error {
|
|||
|
||||
recorder := zipkin.NewRecorder(collector, false, t.ServiceEndpoint, t.serviceName)
|
||||
t.tracer, err = zipkin.NewTracer(recorder, zipkin.ClientServerSameSpan(t.clientServer))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// Name implements the Handler interface.
|
||||
|
|
|
@ -118,7 +118,7 @@ func (r *Request) Size() int {
|
|||
|
||||
size := 0
|
||||
if o := r.Req.IsEdns0(); o != nil {
|
||||
if o.Do() == true {
|
||||
if o.Do() {
|
||||
r.do = doTrue
|
||||
} else {
|
||||
r.do = doFalse
|
||||
|
|
|
@ -11,10 +11,12 @@ import (
|
|||
// Go get external example middleware, compile it into CoreDNS
|
||||
// and check if it is really there, but running coredns -plugins.
|
||||
|
||||
func TestExternalMiddlewareCompile(t *testing.T) {
|
||||
// Dangerous test as it messes with your git tree, maybe use tag?
|
||||
func testExternalMiddlewareCompile(t *testing.T) {
|
||||
if err := addExampleMiddleware(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer run(t, gitReset)
|
||||
|
||||
if _, err := run(t, goGet); err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -56,17 +58,15 @@ func addExampleMiddleware() error {
|
|||
defer f.Close()
|
||||
|
||||
_, err = f.WriteString(example)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
var (
|
||||
goBuild = exec.Command("go", "build")
|
||||
goGen = exec.Command("go", "generate")
|
||||
goGet = exec.Command("go", "get", "github.com/coredns/example")
|
||||
coredns = exec.Command("./coredns", "-plugins")
|
||||
goBuild = exec.Command("go", "build")
|
||||
goGen = exec.Command("go", "generate")
|
||||
goGet = exec.Command("go", "get", "github.com/coredns/example")
|
||||
gitReset = exec.Command("git", "checkout", "core/*")
|
||||
coredns = exec.Command("./coredns", "-plugins")
|
||||
)
|
||||
|
||||
const example = "1001:example:github.com/coredns/example"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue