aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/apiproxy.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-09-14 09:36:06 +0100
committerGravatar GitHub <noreply@github.com> 2017-09-14 09:36:06 +0100
commitd8714e64e400ef873c2adc4d929a07d7890727b9 (patch)
treec9fa4c157e6af12eb1517654f8d23ca5d5619513 /middleware/kubernetes/apiproxy.go
parentb984aa45595dc95253b91191afe7d3ee29e71b48 (diff)
downloadcoredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.gz
coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.zst
coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.zip
Remove the word middleware (#1067)
* Rename middleware to plugin first pass; mostly used 'sed', few spots where I manually changed text. This still builds a coredns binary. * fmt error * Rename AddMiddleware to AddPlugin * Readd AddMiddleware to remain backwards compat
Diffstat (limited to 'middleware/kubernetes/apiproxy.go')
-rw-r--r--middleware/kubernetes/apiproxy.go76
1 files changed, 0 insertions, 76 deletions
diff --git a/middleware/kubernetes/apiproxy.go b/middleware/kubernetes/apiproxy.go
deleted file mode 100644
index f6d2c00fa..000000000
--- a/middleware/kubernetes/apiproxy.go
+++ /dev/null
@@ -1,76 +0,0 @@
-package kubernetes
-
-import (
- "fmt"
- "io"
- "log"
- "net"
- "net/http"
-
- "github.com/coredns/coredns/middleware/pkg/healthcheck"
-)
-
-type proxyHandler struct {
- healthcheck.HealthCheck
-}
-
-type apiProxy struct {
- http.Server
- listener net.Listener
- handler proxyHandler
-}
-
-func (p *proxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- upstream := p.Select()
- network := "tcp"
- if upstream.Network != "" {
- network = upstream.Network
- }
- address := upstream.Name
- d, err := net.Dial(network, address)
- if err != nil {
- log.Printf("[ERROR] Unable to establish connection to upstream %s://%s: %s", network, address, err)
- http.Error(w, fmt.Sprintf("Unable to establish connection to upstream %s://%s: %s", network, address, err), 500)
- return
- }
- hj, ok := w.(http.Hijacker)
- if !ok {
- log.Printf("[ERROR] Unable to establish connection: no hijacker")
- http.Error(w, "Unable to establish connection: no hijacker", 500)
- return
- }
- nc, _, err := hj.Hijack()
- if err != nil {
- log.Printf("[ERROR] Unable to hijack connection: %s", err)
- http.Error(w, fmt.Sprintf("Unable to hijack connection: %s", err), 500)
- return
- }
- defer nc.Close()
- defer d.Close()
-
- err = r.Write(d)
- if err != nil {
- log.Printf("[ERROR] Unable to copy connection to upstream %s://%s: %s", network, address, err)
- http.Error(w, fmt.Sprintf("Unable to copy connection to upstream %s://%s: %s", network, address, err), 500)
- return
- }
-
- errChan := make(chan error, 2)
- cp := func(dst io.Writer, src io.Reader) {
- _, err := io.Copy(dst, src)
- errChan <- err
- }
- go cp(d, nc)
- go cp(nc, d)
- <-errChan
-}
-
-func (p *apiProxy) Run() {
- p.handler.Start()
- p.Serve(p.listener)
-}
-
-func (p *apiProxy) Stop() {
- p.handler.Stop()
- p.listener.Close()
-}