Xray core buggy version removed

only v24.10.16 or newer and v1.8.24
This commit is contained in:
mhsanaei 2024-10-29 13:21:14 +01:00
parent e359b5c75e
commit 0e3691fdbd
No known key found for this signature in database
GPG key ID: 4DACC0663B5986F5

View file

@ -248,28 +248,46 @@ func (s *ServerService) GetStatus(lastStatus *Status) *Status {
} }
func (s *ServerService) GetXrayVersions() ([]string, error) { func (s *ServerService) GetXrayVersions() ([]string, error) {
url := "https://api.github.com/repos/XTLS/Xray-core/releases" const (
resp, err := http.Get(url) XrayURL = "https://api.github.com/repos/XTLS/Xray-core/releases"
bufferSize = 8192
)
resp, err := http.Get(XrayURL)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
buffer := bytes.NewBuffer(make([]byte, 8192))
buffer := bytes.NewBuffer(make([]byte, bufferSize))
buffer.Reset() buffer.Reset()
_, err = buffer.ReadFrom(resp.Body) if _, err := buffer.ReadFrom(resp.Body); err != nil {
if err != nil {
return nil, err return nil, err
} }
releases := make([]Release, 0) var releases []Release
err = json.Unmarshal(buffer.Bytes(), &releases) if err := json.Unmarshal(buffer.Bytes(), &releases); err != nil {
if err != nil {
return nil, err return nil, err
} }
var versions []string var versions []string
for _, release := range releases { for _, release := range releases {
if release.TagName >= "v1.7.5" { tagVersion := strings.TrimPrefix(release.TagName, "v")
tagParts := strings.Split(tagVersion, ".")
if len(tagParts) != 3 {
continue
}
major, err1 := strconv.Atoi(tagParts[0])
minor, err2 := strconv.Atoi(tagParts[1])
patch, err3 := strconv.Atoi(tagParts[2])
if err1 != nil || err2 != nil || err3 != nil {
continue
}
if (major == 1 && minor == 8 && patch == 24) ||
(major == 24 && ((minor > 10) || (minor == 10 && patch >= 16))) ||
(major > 24) {
versions = append(versions, release.TagName) versions = append(versions, release.TagName)
} }
} }