diff options
Diffstat (limited to 'middleware/httpproxy/proxy.go')
-rw-r--r-- | middleware/httpproxy/proxy.go | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/middleware/httpproxy/proxy.go b/middleware/httpproxy/proxy.go deleted file mode 100644 index 3ef638a8f..000000000 --- a/middleware/httpproxy/proxy.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package httpproxy is middleware that proxies requests to a HTTPs server doing DNS. -package httpproxy - -import ( - "errors" - "time" - - "github.com/miekg/coredns/middleware" - "github.com/miekg/coredns/request" - - "github.com/miekg/dns" - "golang.org/x/net/context" -) - -var errUnreachable = errors.New("unreachable backend") - -// Proxy represents a middleware instance that can proxy requests to HTTPS servers. -type Proxy struct { - from string - e Exchanger - - Next middleware.Handler -} - -// ServeDNS satisfies the middleware.Handler interface. -func (p *Proxy) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { - start := time.Now() - state := request.Request{W: w, Req: r} - - reply, backendErr := p.e.Exchange(state) - - if backendErr == nil && reply != nil { - state.SizeAndDo(reply) - - w.WriteMsg(reply) - RequestDuration.WithLabelValues(p.from).Observe(float64(time.Since(start) / time.Millisecond)) - return 0, nil - } - RequestDuration.WithLabelValues(p.from).Observe(float64(time.Since(start) / time.Millisecond)) - - return dns.RcodeServerFailure, errUnreachable -} - -// Name implements the Handler interface. -func (p Proxy) Name() string { return "httpproxy" } |