package kubernetes import ( "fmt" "io" "log" "net" "net/http" "github.com/coredns/coredns/plugin/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" 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() go func() { p.Serve(p.listener) }() } func (p *apiProxy) Stop() { p.handler.Stop() p.listener.Close() } se Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/packages/astro/test/fixtures/astro-jsx (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2021-11-19Fix blog example (#1910)Gravatar Matthew Phillips 1-1/+1
2021-11-19Version Packages (next) (#1907)astro@0.21.0-next.10Gravatar github-actions[bot] 23-21/+28
2021-11-19Remove further dependence on vite package (#1906)Gravatar Matthew Phillips 3-5/+9
2021-11-19Version Packages (next) (#1904)astro@0.21.0-next.9Gravatar github-actions[bot] 23-21/+30
2021-11-19Remove OSX \x00 workaround (#1901)Gravatar Matthew Phillips 2-5/+5
2021-11-19Resolve vite client modules to vendored vite (#1903)Gravatar Matthew Phillips 2-2/+7
2021-11-19[ci] yarn formatGravatar matthewp 1-3/+3
2021-11-19Add Debug tests (#1882)Gravatar Matthew Phillips 4-0/+62
2021-11-19[ci] collect statsGravatar FredKSchott 1-0/+1
2021-11-19Version Packages (next) (#1881)astro@0.21.0-next.8@astrojs/renderer-vue@0.2.0-next.2Gravatar github-actions[bot] 25-23/+42
2021-11-18Improve HMR (#1896)Gravatar Drew Powers 2-10/+18
2021-11-18update depsGravatar Fred K. Schott 5-352/+65
2021-11-18fix #1778Gravatar Fred K. Schott 2-1/+8
2021-11-18Update compiler (#1869)Gravatar Nate Moore 3-11/+6
2021-11-18remove unused remark dependency (#1894)Gravatar Fred K. Schott 2-245/+13
2021-11-18Improve error messages (#1875)Gravatar Drew Powers 39-61/+448
2021-11-18pin astro compiler to older versionGravatar Fred K. Schott 2-5/+5
2021-11-18Update yarn.lock to reflect the state of the package.json files (#1892)Gravatar Jonathan Neal 5-1300/+1000
2021-11-19[ci] yarn formatGravatar FredKSchott 1-5/+3