v2.7.2
This commit is contained in:
parent
bf8082dbae
commit
3c27ef2fff
@ -24,6 +24,7 @@ import (
|
|||||||
"x-ui/util/sys"
|
"x-ui/util/sys"
|
||||||
"x-ui/xray"
|
"x-ui/xray"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
"github.com/shirou/gopsutil/v4/cpu"
|
"github.com/shirou/gopsutil/v4/cpu"
|
||||||
"github.com/shirou/gopsutil/v4/disk"
|
"github.com/shirou/gopsutil/v4/disk"
|
||||||
"github.com/shirou/gopsutil/v4/host"
|
"github.com/shirou/gopsutil/v4/host"
|
||||||
@ -343,7 +344,7 @@ func (s *ServerService) GetXrayVersions() ([]string, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if major > 25 || (major == 25 && minor > 8) || (major == 25 && minor == 8 && patch >= 3) {
|
if major > 25 || (major == 25 && minor > 9) || (major == 25 && minor == 9 && patch >= 10) {
|
||||||
versions = append(versions, release.TagName)
|
versions = append(versions, release.TagName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -872,11 +873,6 @@ func (s *ServerService) GetNewEchCert(sni string) (interface{}, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthBlock struct {
|
|
||||||
Label string `json:"label"`
|
|
||||||
Decryption string `json:"decryption"`
|
|
||||||
Encryption string `json:"encryption"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *ServerService) GetNewVlessEnc() (any, error) {
|
func (s *ServerService) GetNewVlessEnc() (any, error) {
|
||||||
cmd := exec.Command(xray.GetBinaryPath(), "vlessenc")
|
cmd := exec.Command(xray.GetBinaryPath(), "vlessenc")
|
||||||
@ -888,36 +884,71 @@ func (s *ServerService) GetNewVlessEnc() (any, error) {
|
|||||||
|
|
||||||
lines := strings.Split(out.String(), "\n")
|
lines := strings.Split(out.String(), "\n")
|
||||||
|
|
||||||
var blocks []AuthBlock
|
var auths []map[string]string
|
||||||
var current *AuthBlock
|
var current map[string]string
|
||||||
|
|
||||||
for _, line := range lines {
|
for _, line := range lines {
|
||||||
line = strings.TrimSpace(line)
|
line = strings.TrimSpace(line)
|
||||||
if strings.HasPrefix(line, "Authentication:") {
|
if strings.HasPrefix(line, "Authentication:") {
|
||||||
if current != nil {
|
if current != nil {
|
||||||
blocks = append(blocks, *current)
|
auths = append(auths, current)
|
||||||
|
}
|
||||||
|
current = map[string]string{
|
||||||
|
"label": strings.TrimSpace(strings.TrimPrefix(line, "Authentication:")),
|
||||||
}
|
}
|
||||||
current = &AuthBlock{Label: strings.TrimSpace(strings.TrimPrefix(line, "Authentication:"))}
|
|
||||||
} else if strings.HasPrefix(line, `"decryption"`) || strings.HasPrefix(line, `"encryption"`) {
|
} else if strings.HasPrefix(line, `"decryption"`) || strings.HasPrefix(line, `"encryption"`) {
|
||||||
parts := strings.SplitN(line, ":", 2)
|
parts := strings.SplitN(line, ":", 2)
|
||||||
if len(parts) == 2 && current != nil {
|
if len(parts) == 2 && current != nil {
|
||||||
key := strings.Trim(parts[0], `" `)
|
key := strings.Trim(parts[0], `" `)
|
||||||
val := strings.Trim(parts[1], `" `)
|
val := strings.Trim(parts[1], `" `)
|
||||||
switch key {
|
current[key] = val
|
||||||
case "decryption":
|
|
||||||
current.Decryption = val
|
|
||||||
case "encryption":
|
|
||||||
current.Encryption = val
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if current != nil {
|
if current != nil {
|
||||||
blocks = append(blocks, *current)
|
auths = append(auths, current)
|
||||||
}
|
}
|
||||||
|
|
||||||
return map[string]any{
|
return map[string]any{
|
||||||
"auths": blocks,
|
"auths": auths,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *ServerService) GetNewUUID() (map[string]string, error) {
|
||||||
|
newUUID, err := uuid.NewRandom()
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to generate UUID: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return map[string]string{
|
||||||
|
"uuid": newUUID.String(),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func (s *ServerService) GetNewmlkem768() (any, error) {
|
||||||
|
// Run the command
|
||||||
|
cmd := exec.Command(xray.GetBinaryPath(), "mlkem768")
|
||||||
|
var out bytes.Buffer
|
||||||
|
cmd.Stdout = &out
|
||||||
|
err := cmd.Run()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
lines := strings.Split(out.String(), "\n")
|
||||||
|
|
||||||
|
SeedLine := strings.Split(lines[0], ":")
|
||||||
|
ClientLine := strings.Split(lines[1], ":")
|
||||||
|
|
||||||
|
seed := strings.TrimSpace(SeedLine[1])
|
||||||
|
client := strings.TrimSpace(ClientLine[1])
|
||||||
|
|
||||||
|
keyPair := map[string]any{
|
||||||
|
"seed": seed,
|
||||||
|
"client": client,
|
||||||
|
}
|
||||||
|
|
||||||
|
return keyPair, nil
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user