mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 02:03:20 -04:00 
			
		
		
		
	With Go 1.9 you *can* include the std lib's context package and nothing breaks. However we never officially made the move (and grpc also doesn't ues the std lib's one). Standardize all plugins on using the extern context package. Fixes #1466
		
			
				
	
	
		
			23 lines
		
	
	
		
			594 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			594 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package proxy
 | |
| 
 | |
| import (
 | |
| 	"github.com/coredns/coredns/request"
 | |
| 
 | |
| 	"github.com/miekg/dns"
 | |
| 	"golang.org/x/net/context"
 | |
| )
 | |
| 
 | |
| // Exchanger is an interface that specifies a type implementing a DNS resolver that
 | |
| // can use whatever transport it likes.
 | |
| type Exchanger interface {
 | |
| 	Exchange(ctx context.Context, addr string, state request.Request) (*dns.Msg, error)
 | |
| 	Protocol() string
 | |
| 
 | |
| 	// Transport returns the only transport protocol used by this Exchanger or "".
 | |
| 	// If the return value is "", Exchange must use `state.Proto()`.
 | |
| 	Transport() string
 | |
| 
 | |
| 	OnStartup(*Proxy) error
 | |
| 	OnShutdown(*Proxy) error
 | |
| }
 |