mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-30 09:43:17 -04:00 
			
		
		
		
	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:
		| @@ -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" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user