diff --git a/cmd/pgs/lite/main.go b/cmd/pgs/lite/main.go index 57bbf60..ff8ce0e 100644 --- a/cmd/pgs/lite/main.go +++ b/cmd/pgs/lite/main.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "net" "net/http" "net/http/httputil" @@ -17,19 +18,16 @@ type cachedHttp struct { } func (c *cachedHttp) ServeHTTP(writer http.ResponseWriter, req *http.Request) { - logger := c.routes.Cfg.Logger _ = c.handler.ServeHTTP(writer, req, func(w http.ResponseWriter, r *http.Request) error { - // TODO: how to i pass this request to `ash.pgs.sh`? - destUrl := r.URL - logger.Info("proxy request", "url", destUrl.String()) - - proxy := httputil.NewSingleHostReverseProxy(destUrl) - oldDirector := proxy.Director - proxy.Director = func(r *http.Request) { - oldDirector(r) - r.Host = destUrl.Host - r.URL = destUrl + defaultTransport := http.DefaultTransport.(*http.Transport) + newTransport := defaultTransport.Clone() + oldDialContext := newTransport.DialContext + newTransport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { + return oldDialContext(ctx, "tcp", "ash.pgs.sh:443") } + proxy := httputil.NewSingleHostReverseProxy(r.URL) + proxy.Transport = newTransport + proxy.ServeHTTP(w, r) return nil })