Use instance's ServeHTTP in handlers

This commit is contained in:
2025-10-29 00:01:29 +01:00
parent d65c5ab717
commit 77c0e22fd0
3 changed files with 24 additions and 28 deletions

View File

@@ -66,17 +66,16 @@ func (h *Handler) LlamaCppUIProxy() http.HandlerFunc {
return return
} }
proxy, err := inst.GetProxy()
if err != nil {
writeError(w, http.StatusInternalServerError, "failed to get proxy", err.Error())
return
}
if !inst.IsRemote() { if !inst.IsRemote() {
h.stripLlamaCppPrefix(r, inst.Name) h.stripLlamaCppPrefix(r, inst.Name)
} }
proxy.ServeHTTP(w, r) // Use instance's ServeHTTP which tracks inflight requests and handles shutting down state
err = inst.ServeHTTP(w, r)
if err != nil {
// Error is already handled in ServeHTTP (response written)
return
}
} }
} }
@@ -118,17 +117,16 @@ func (h *Handler) LlamaCppProxy() http.HandlerFunc {
} }
} }
proxy, err := inst.GetProxy()
if err != nil {
writeError(w, http.StatusInternalServerError, "failed to get proxy", err.Error())
return
}
if !inst.IsRemote() { if !inst.IsRemote() {
h.stripLlamaCppPrefix(r, inst.Name) h.stripLlamaCppPrefix(r, inst.Name)
} }
proxy.ServeHTTP(w, r) // Use instance's ServeHTTP which tracks inflight requests and handles shutting down state
err = inst.ServeHTTP(w, r)
if err != nil {
// Error is already handled in ServeHTTP (response written)
return
}
} }
} }

View File

@@ -332,12 +332,6 @@ func (h *Handler) InstanceProxy() http.HandlerFunc {
return return
} }
proxy, err := inst.GetProxy()
if err != nil {
writeError(w, http.StatusInternalServerError, "proxy_failed", "Failed to get proxy: "+err.Error())
return
}
if !inst.IsRemote() { if !inst.IsRemote() {
// Strip the "/api/v1/instances/<name>/proxy" prefix from the request URL // Strip the "/api/v1/instances/<name>/proxy" prefix from the request URL
prefix := fmt.Sprintf("/api/v1/instances/%s/proxy", inst.Name) prefix := fmt.Sprintf("/api/v1/instances/%s/proxy", inst.Name)
@@ -348,6 +342,11 @@ func (h *Handler) InstanceProxy() http.HandlerFunc {
r.Header.Set("X-Forwarded-Host", r.Header.Get("Host")) r.Header.Set("X-Forwarded-Host", r.Header.Get("Host"))
r.Header.Set("X-Forwarded-Proto", "http") r.Header.Set("X-Forwarded-Proto", "http")
proxy.ServeHTTP(w, r) // Use instance's ServeHTTP which tracks inflight requests and handles shutting down state
err = inst.ServeHTTP(w, r)
if err != nil {
// Error is already handled in ServeHTTP (response written)
return
}
} }
} }

View File

@@ -114,16 +114,15 @@ func (h *Handler) OpenAIProxy() http.HandlerFunc {
} }
} }
proxy, err := inst.GetProxy()
if err != nil {
writeError(w, http.StatusInternalServerError, "proxy_failed", err.Error())
return
}
// Recreate the request body from the bytes we read // Recreate the request body from the bytes we read
r.Body = io.NopCloser(bytes.NewReader(bodyBytes)) r.Body = io.NopCloser(bytes.NewReader(bodyBytes))
r.ContentLength = int64(len(bodyBytes)) r.ContentLength = int64(len(bodyBytes))
proxy.ServeHTTP(w, r) // Use instance's ServeHTTP which tracks inflight requests and handles shutting down state
err = inst.ServeHTTP(w, r)
if err != nil {
// Error is already handled in ServeHTTP (response written)
return
}
} }
} }