aboutsummaryrefslogtreecommitdiff
path: root/middleware/httpproxy/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/httpproxy/setup.go')
-rw-r--r--middleware/httpproxy/setup.go96
1 files changed, 0 insertions, 96 deletions
diff --git a/middleware/httpproxy/setup.go b/middleware/httpproxy/setup.go
deleted file mode 100644
index 01094c908..000000000
--- a/middleware/httpproxy/setup.go
+++ /dev/null
@@ -1,96 +0,0 @@
-package httpproxy
-
-import (
- "fmt"
-
- "github.com/miekg/coredns/core/dnsserver"
- "github.com/miekg/coredns/middleware"
-
- "github.com/mholt/caddy"
- "github.com/mholt/caddy/caddyfile"
-)
-
-func init() {
- caddy.RegisterPlugin("httpproxy", caddy.Plugin{
- ServerType: "dns",
- Action: setup,
- })
-}
-
-func setup(c *caddy.Controller) error {
- p, err := httpproxyParse(c)
- if err != nil {
- return middleware.Error("httpproxy", err)
- }
-
- dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler {
- p.Next = next
- return p
- })
-
- c.OnStartup(func() error {
- OnStartupMetrics()
- e := p.e.OnStartup()
- if e != nil {
- return middleware.Error("httpproxy", e)
- }
- return nil
- })
- c.OnShutdown(func() error {
- e := p.e.OnShutdown()
- if e != nil {
- return middleware.Error("httpproxy", e)
- }
- return nil
- })
-
- return nil
-}
-
-func httpproxyParse(c *caddy.Controller) (*Proxy, error) {
- var p = &Proxy{}
-
- for c.Next() {
- if !c.Args(&p.from) {
- return p, c.ArgErr()
- }
- to := c.RemainingArgs()
- if len(to) != 1 {
- return p, c.ArgErr()
- }
- switch to[0] {
- case "dns.google.com":
- p.e = newGoogle()
- u, _ := newSimpleUpstream([]string{"8.8.8.8:53", "8.8.4.4:53"})
- p.e.SetUpstream(u)
- default:
- return p, fmt.Errorf("unknown http proxy %q", to[0])
- }
-
- for c.NextBlock() {
- if err := parseBlock(&c.Dispenser, p); err != nil {
- return p, err
- }
- }
- }
-
- return p, nil
-}
-
-func parseBlock(c *caddyfile.Dispenser, p *Proxy) error {
- switch c.Val() {
- case "upstream":
- upstreams := c.RemainingArgs()
- if len(upstreams) == 0 {
- return c.ArgErr()
- }
- u, err := newSimpleUpstream(upstreams)
- if err != nil {
- return err
- }
- p.e.SetUpstream(u)
- default:
- return c.Errf("unknown property '%s'", c.Val())
- }
- return nil
-}