perf(xray): bound Xray-version request and extend cache

Replace the unbounded http.Get used by GetXrayVersions with a 10s-
timeout client so a slow or unreachable GitHub can't hang the Xray
Updates modal. Bump the controller cache from 60s to 15 minutes,
and on a request error fall back to the last successful list when
one is available.
This commit is contained in:
MHSanaei
2026-05-10 00:24:25 +02:00
parent 113a29733e
commit 9735d26b3d
2 changed files with 11 additions and 3 deletions
+3 -1
View File
@@ -492,13 +492,15 @@ func (s *ServerService) sampleCPUUtilization() (float64, error) {
return s.emaCPU, nil
}
var xrayVersionsClient = &http.Client{Timeout: 10 * time.Second}
func (s *ServerService) GetXrayVersions() ([]string, error) {
const (
XrayURL = "https://api.github.com/repos/XTLS/Xray-core/releases"
bufferSize = 8192
)
resp, err := http.Get(XrayURL)
resp, err := xrayVersionsClient.Get(XrayURL)
if err != nil {
return nil, err
}