diff --git a/agent/pkg/agent/http_requests.go b/agent/pkg/agent/http_requests.go index fa3b88bb..e2380ba9 100644 --- a/agent/pkg/agent/http_requests.go +++ b/agent/pkg/agent/http_requests.go @@ -55,17 +55,11 @@ func (cfg *AgentConfig) Websocket(ctx context.Context, endpoint string) (*websoc // // It will create a new request with the same context, method, and body, but with the agent host and scheme, and the endpoint // If the request has a query, it will be added to the proxy request's URL -func (cfg *AgentConfig) ReverseProxy(w http.ResponseWriter, req *http.Request, endpoint string) error { +func (cfg *AgentConfig) ReverseProxy(w http.ResponseWriter, req *http.Request, endpoint string) { rp := reverseproxy.NewReverseProxy("agent", nettypes.NewURL(AgentURL), cfg.Transport()) - uri := endpoint - if req.URL.RawQuery != "" { - uri += "?" + req.URL.RawQuery - } - r, err := http.NewRequestWithContext(req.Context(), req.Method, uri, req.Body) - if err != nil { - return err - } - r.Header = req.Header - rp.ServeHTTP(w, r) - return nil + req.URL.Host = AgentHost + req.URL.Scheme = "https" + req.URL.Path = endpoint + req.RequestURI = "" + rp.ServeHTTP(w, req) } diff --git a/internal/api/v1/metrics/system_info.go b/internal/api/v1/metrics/system_info.go index 5cd47c87..bc8a5067 100644 --- a/internal/api/v1/metrics/system_info.go +++ b/internal/api/v1/metrics/system_info.go @@ -46,6 +46,7 @@ func SystemInfo(c *gin.Context) { systeminfo.Poller.ServeHTTP(c) return } + c.Request.URL.RawQuery = query.Encode() agent, ok := agentPkg.GetAgent(agentAddr) if !ok { @@ -69,10 +70,6 @@ func SystemInfo(c *gin.Context) { c.Status(resp.StatusCode) io.Copy(c.Writer, resp.Body) } else { - err := agent.ReverseProxy(c.Writer, c.Request, agentPkg.EndpointSystemInfo+"?"+query.Encode()) - if err != nil { - c.Error(apitypes.InternalServerError(err, "failed to reverse proxy")) - return - } + agent.ReverseProxy(c.Writer, c.Request, agentPkg.EndpointSystemInfo) } }