mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	Remove debug queries (#1058)
* Remove debug from interface and methods * remove debug queries from etcd * remove debug queries from k8s - they were not used * And remove from mw/proxy-google as well * Remove debug query test
This commit is contained in:
		| @@ -14,10 +14,10 @@ import ( | ||||
| ) | ||||
|  | ||||
| // A returns A records from Backend or an error. | ||||
| func A(b ServiceBackend, zone string, state request.Request, previousRecords []dns.RR, opt Options) (records []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| func A(b ServiceBackend, zone string, state request.Request, previousRecords []dns.RR, opt Options) (records []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, debug, err | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	for _, serv := range services { | ||||
| @@ -41,14 +41,13 @@ func A(b ServiceBackend, zone string, state request.Request, previousRecords []d | ||||
| 			} | ||||
|  | ||||
| 			state1 := state.NewWithQuestion(serv.Host, state.QType()) | ||||
| 			nextRecords, nextDebug, err := A(b, zone, state1, append(previousRecords, newRecord), opt) | ||||
| 			nextRecords, err := A(b, zone, state1, append(previousRecords, newRecord), opt) | ||||
|  | ||||
| 			if err == nil { | ||||
| 				// Not only have we found something we should add the CNAME and the IP addresses. | ||||
| 				if len(nextRecords) > 0 { | ||||
| 					records = append(records, newRecord) | ||||
| 					records = append(records, nextRecords...) | ||||
| 					debug = append(debug, nextDebug...) | ||||
| 				} | ||||
| 				continue | ||||
| 			} | ||||
| @@ -61,8 +60,6 @@ func A(b ServiceBackend, zone string, state request.Request, previousRecords []d | ||||
| 			// Lookup | ||||
| 			m1, e1 := b.Lookup(state, target, state.QType()) | ||||
| 			if e1 != nil { | ||||
| 				debugMsg := msg.Service{Key: msg.Path(target, b.Debug()), Host: target, Text: " IN " + state.Type() + ": " + e1.Error()} | ||||
| 				debug = append(debug, debugMsg) | ||||
| 				continue | ||||
| 			} | ||||
| 			// Len(m1.Answer) > 0 here is well? | ||||
| @@ -77,14 +74,14 @@ func A(b ServiceBackend, zone string, state request.Request, previousRecords []d | ||||
| 			// nodata? | ||||
| 		} | ||||
| 	} | ||||
| 	return records, debug, nil | ||||
| 	return records, nil | ||||
| } | ||||
|  | ||||
| // AAAA returns AAAA records from Backend or an error. | ||||
| func AAAA(b ServiceBackend, zone string, state request.Request, previousRecords []dns.RR, opt Options) (records []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| func AAAA(b ServiceBackend, zone string, state request.Request, previousRecords []dns.RR, opt Options) (records []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, debug, err | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	for _, serv := range services { | ||||
| @@ -109,14 +106,13 @@ func AAAA(b ServiceBackend, zone string, state request.Request, previousRecords | ||||
| 			} | ||||
|  | ||||
| 			state1 := state.NewWithQuestion(serv.Host, state.QType()) | ||||
| 			nextRecords, nextDebug, err := AAAA(b, zone, state1, append(previousRecords, newRecord), opt) | ||||
| 			nextRecords, err := AAAA(b, zone, state1, append(previousRecords, newRecord), opt) | ||||
|  | ||||
| 			if err == nil { | ||||
| 				// Not only have we found something we should add the CNAME and the IP addresses. | ||||
| 				if len(nextRecords) > 0 { | ||||
| 					records = append(records, newRecord) | ||||
| 					records = append(records, nextRecords...) | ||||
| 					debug = append(debug, nextDebug...) | ||||
| 				} | ||||
| 				continue | ||||
| 			} | ||||
| @@ -128,8 +124,6 @@ func AAAA(b ServiceBackend, zone string, state request.Request, previousRecords | ||||
| 			} | ||||
| 			m1, e1 := b.Lookup(state, target, state.QType()) | ||||
| 			if e1 != nil { | ||||
| 				debugMsg := msg.Service{Key: msg.Path(target, b.Debug()), Host: target, Text: " IN " + state.Type() + ": " + e1.Error()} | ||||
| 				debug = append(debug, debugMsg) | ||||
| 				continue | ||||
| 			} | ||||
| 			// Len(m1.Answer) > 0 here is well? | ||||
| @@ -145,15 +139,15 @@ func AAAA(b ServiceBackend, zone string, state request.Request, previousRecords | ||||
| 			records = append(records, serv.NewAAAA(state.QName(), ip)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, debug, nil | ||||
| 	return records, nil | ||||
| } | ||||
|  | ||||
| // SRV returns SRV records from the Backend. | ||||
| // If the Target is not a name but an IP address, a name is created on the fly. | ||||
| func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, nil, err | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
|  | ||||
| 	// Looping twice to get the right weight vs priority | ||||
| @@ -196,9 +190,6 @@ func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (rec | ||||
| 				m1, e1 := b.Lookup(state, srv.Target, dns.TypeA) | ||||
| 				if e1 == nil { | ||||
| 					extra = append(extra, m1.Answer...) | ||||
| 				} else { | ||||
| 					debugMsg := msg.Service{Key: msg.Path(srv.Target, b.Debug()), Host: srv.Target, Text: " IN A: " + e1.Error()} | ||||
| 					debug = append(debug, debugMsg) | ||||
| 				} | ||||
|  | ||||
| 				m1, e1 = b.Lookup(state, srv.Target, dns.TypeAAAA) | ||||
| @@ -209,19 +200,15 @@ func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (rec | ||||
| 							extra = append(extra, a) | ||||
| 						} | ||||
| 					} | ||||
| 				} else { | ||||
| 					debugMsg := msg.Service{Key: msg.Path(srv.Target, b.Debug()), Host: srv.Target, Text: " IN AAAA: " + e1.Error()} | ||||
| 					debug = append(debug, debugMsg) | ||||
| 				} | ||||
| 				break | ||||
| 			} | ||||
| 			// 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, opt) | ||||
| 			addr, e1 := A(b, zone, state1, nil, opt) | ||||
| 			if e1 == nil { | ||||
| 				extra = append(extra, addr...) | ||||
| 				debug = append(debug, debugAddr...) | ||||
| 			} | ||||
| 			// IPv6 lookups here as well? AAAA(zone, state1, nil). | ||||
|  | ||||
| @@ -233,14 +220,14 @@ func SRV(b ServiceBackend, zone string, state request.Request, opt Options) (rec | ||||
| 			extra = append(extra, newAddress(serv, srv.Target, ip, what)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, extra, debug, nil | ||||
| 	return records, extra, nil | ||||
| } | ||||
|  | ||||
| // MX returns MX records from the Backend. If the Target is not a name but an IP address, a name is created on the fly. | ||||
| func MX(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| func MX(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, debug, err | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
|  | ||||
| 	lookup := make(map[string]bool) | ||||
| @@ -263,10 +250,8 @@ func MX(b ServiceBackend, zone string, state request.Request, opt Options) (reco | ||||
| 				m1, e1 := b.Lookup(state, mx.Mx, dns.TypeA) | ||||
| 				if e1 == nil { | ||||
| 					extra = append(extra, m1.Answer...) | ||||
| 				} else { | ||||
| 					debugMsg := msg.Service{Key: msg.Path(mx.Mx, b.Debug()), Host: mx.Mx, Text: " IN A: " + e1.Error()} | ||||
| 					debug = append(debug, debugMsg) | ||||
| 				} | ||||
|  | ||||
| 				m1, e1 = b.Lookup(state, mx.Mx, dns.TypeAAAA) | ||||
| 				if e1 == nil { | ||||
| 					// If we have seen CNAME's we *assume* that they are already added. | ||||
| @@ -275,18 +260,14 @@ func MX(b ServiceBackend, zone string, state request.Request, opt Options) (reco | ||||
| 							extra = append(extra, a) | ||||
| 						} | ||||
| 					} | ||||
| 				} else { | ||||
| 					debugMsg := msg.Service{Key: msg.Path(mx.Mx, b.Debug()), Host: mx.Mx, Text: " IN AAAA: " + e1.Error()} | ||||
| 					debug = append(debug, debugMsg) | ||||
| 				} | ||||
| 				break | ||||
| 			} | ||||
| 			// Internal name | ||||
| 			state1 := state.NewWithQuestion(mx.Mx, dns.TypeA) | ||||
| 			addr, debugAddr, e1 := A(b, zone, state1, nil, opt) | ||||
| 			addr, e1 := A(b, zone, state1, nil, opt) | ||||
| 			if e1 == nil { | ||||
| 				extra = append(extra, addr...) | ||||
| 				debug = append(debug, debugAddr...) | ||||
| 			} | ||||
| 			// e.AAAA as well | ||||
|  | ||||
| @@ -296,14 +277,14 @@ func MX(b ServiceBackend, zone string, state request.Request, opt Options) (reco | ||||
| 			extra = append(extra, newAddress(serv, serv.Host, ip, what)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, extra, debug, nil | ||||
| 	return records, extra, nil | ||||
| } | ||||
|  | ||||
| // CNAME returns CNAME records from the backend or an error. | ||||
| func CNAME(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, true, opt) | ||||
| func CNAME(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, true, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, debug, err | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	if len(services) > 0 { | ||||
| @@ -312,14 +293,14 @@ func CNAME(b ServiceBackend, zone string, state request.Request, opt Options) (r | ||||
| 			records = append(records, serv.NewCNAME(state.QName(), serv.Host)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, debug, nil | ||||
| 	return records, nil | ||||
| } | ||||
|  | ||||
| // TXT returns TXT records from Backend or an error. | ||||
| func TXT(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| func TXT(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, err error) { | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, debug, err | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	for _, serv := range services { | ||||
| @@ -328,14 +309,14 @@ func TXT(b ServiceBackend, zone string, state request.Request, opt Options) (rec | ||||
| 		} | ||||
| 		records = append(records, serv.NewTXT(state.QName())) | ||||
| 	} | ||||
| 	return records, debug, nil | ||||
| 	return records, nil | ||||
| } | ||||
|  | ||||
| // PTR returns the PTR records from the backend, only services that have a domain name as host are included. | ||||
| func PTR(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, debug []msg.Service, err error) { | ||||
| 	services, debug, err := b.Reverse(state, true, opt) | ||||
| func PTR(b ServiceBackend, zone string, state request.Request, opt Options) (records []dns.RR, err error) { | ||||
| 	services, err := b.Reverse(state, true, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, debug, err | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	for _, serv := range services { | ||||
| @@ -343,20 +324,20 @@ func PTR(b ServiceBackend, zone string, state request.Request, opt Options) (rec | ||||
| 			records = append(records, serv.NewPTR(state.QName(), serv.Host)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, debug, nil | ||||
| 	return records, nil | ||||
| } | ||||
|  | ||||
| // NS returns NS records from  the backend | ||||
| func NS(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, debug []msg.Service, err error) { | ||||
| func NS(b ServiceBackend, zone string, state request.Request, opt Options) (records, extra []dns.RR, err error) { | ||||
| 	// NS record for this zone live in a special place, ns.dns.<zone>. Fake our lookup. | ||||
| 	// only a tad bit fishy... | ||||
| 	old := state.QName() | ||||
|  | ||||
| 	state.Clear() | ||||
| 	state.Req.Question[0].Name = "ns.dns." + zone | ||||
| 	services, debug, err := b.Services(state, false, opt) | ||||
| 	services, err := b.Services(state, false, opt) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, debug, err | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 	// ... and reset | ||||
| 	state.Req.Question[0].Name = old | ||||
| @@ -365,7 +346,7 @@ func NS(b ServiceBackend, zone string, state request.Request, opt Options) (reco | ||||
| 		what, ip := serv.HostType() | ||||
| 		switch what { | ||||
| 		case dns.TypeCNAME: | ||||
| 			return nil, nil, debug, fmt.Errorf("NS record must be an IP address: %s", serv.Host) | ||||
| 			return nil, nil, fmt.Errorf("NS record must be an IP address: %s", serv.Host) | ||||
|  | ||||
| 		case dns.TypeA, dns.TypeAAAA: | ||||
| 			serv.Host = msg.Domain(serv.Key) | ||||
| @@ -373,11 +354,11 @@ func NS(b ServiceBackend, zone string, state request.Request, opt Options) (reco | ||||
| 			extra = append(extra, newAddress(serv, serv.Host, ip, what)) | ||||
| 		} | ||||
| 	} | ||||
| 	return records, extra, debug, nil | ||||
| 	return records, extra, nil | ||||
| } | ||||
|  | ||||
| // SOA returns a SOA record from the backend. | ||||
| func SOA(b ServiceBackend, zone string, state request.Request, opt Options) ([]dns.RR, []msg.Service, error) { | ||||
| func SOA(b ServiceBackend, zone string, state request.Request, opt Options) ([]dns.RR, error) { | ||||
| 	header := dns.RR_Header{Name: zone, Rrtype: dns.TypeSOA, Ttl: 300, Class: dns.ClassINET} | ||||
|  | ||||
| 	Mbox := hostmaster + "." | ||||
| @@ -396,60 +377,22 @@ func SOA(b ServiceBackend, zone string, state request.Request, opt Options) ([]d | ||||
| 		Expire:  86400, | ||||
| 		Minttl:  minTTL, | ||||
| 	} | ||||
| 	return []dns.RR{soa}, nil, nil | ||||
| 	return []dns.RR{soa}, nil | ||||
| } | ||||
|  | ||||
| // BackendError writes an error response to the client. | ||||
| func BackendError(b ServiceBackend, zone string, rcode int, state request.Request, debug []msg.Service, err error, opt Options) (int, error) { | ||||
| func BackendError(b ServiceBackend, zone string, rcode int, state request.Request, err error, opt Options) (int, error) { | ||||
| 	m := new(dns.Msg) | ||||
| 	m.SetRcode(state.Req, rcode) | ||||
| 	m.Authoritative, m.RecursionAvailable, m.Compress = true, true, true | ||||
| 	m.Ns, _, _ = SOA(b, zone, state, opt) | ||||
| 	if opt.Debug != "" { | ||||
| 		m.Extra = ServicesToTxt(debug) | ||||
| 		txt := ErrorToTxt(err) | ||||
| 		if txt != nil { | ||||
| 			m.Extra = append(m.Extra, ErrorToTxt(err)) | ||||
| 		} | ||||
| 	} | ||||
| 	m.Ns, _ = SOA(b, zone, state, opt) | ||||
|  | ||||
| 	state.SizeAndDo(m) | ||||
| 	state.W.WriteMsg(m) | ||||
| 	// Return success as the rcode to signal we have written to the client. | ||||
| 	return dns.RcodeSuccess, err | ||||
| } | ||||
|  | ||||
| // ServicesToTxt puts debug in TXT RRs. | ||||
| func ServicesToTxt(debug []msg.Service) []dns.RR { | ||||
| 	if debug == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	rr := make([]dns.RR, len(debug)) | ||||
| 	for i, d := range debug { | ||||
| 		rr[i] = d.RR() | ||||
| 	} | ||||
| 	return rr | ||||
| } | ||||
|  | ||||
| // ErrorToTxt puts in error's text into an TXT RR. | ||||
| func ErrorToTxt(err error) dns.RR { | ||||
| 	if err == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	msg := err.Error() | ||||
| 	if len(msg) > 255 { | ||||
| 		msg = msg[:255] | ||||
| 	} | ||||
| 	t := new(dns.TXT) | ||||
| 	t.Hdr.Class = dns.ClassCHAOS | ||||
| 	t.Hdr.Ttl = 0 | ||||
| 	t.Hdr.Rrtype = dns.TypeTXT | ||||
| 	t.Hdr.Name = "." | ||||
|  | ||||
| 	t.Txt = []string{msg} | ||||
| 	return t | ||||
| } | ||||
|  | ||||
| func newAddress(s msg.Service, name string, ip net.IP, what uint16) dns.RR { | ||||
|  | ||||
| 	hdr := dns.RR_Header{Name: name, Rrtype: what, Class: dns.ClassINET, Ttl: s.TTL} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user