Release 1.9.0: add VLESS, VMess and Trojan via Xray-core.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
"vpnclient/internal/protocols/awg"
|
||||
"vpnclient/internal/protocols/hysteria2"
|
||||
"vpnclient/internal/protocols/naive"
|
||||
"vpnclient/internal/protocols/xray"
|
||||
"vpnclient/internal/subscription"
|
||||
"vpnclient/internal/sysproxy"
|
||||
)
|
||||
@@ -412,7 +413,7 @@ func (m *Manager) ImportSubscription(rawURL string) (int, error) {
|
||||
return 0, err
|
||||
}
|
||||
if len(items) == 0 {
|
||||
return 0, fmt.Errorf("в подписке нет поддерживаемых ссылок (naive / hysteria2 / awg)")
|
||||
return 0, fmt.Errorf("в подписке нет поддерживаемых ссылок (naive / hysteria2 / awg / vless / vmess / trojan)")
|
||||
}
|
||||
|
||||
m.mu.Lock()
|
||||
@@ -466,6 +467,8 @@ func (m *Manager) newEngine(p config.Protocol) (Engine, error) {
|
||||
return hysteria2.New(m.stderr), nil
|
||||
case config.ProtocolAWG:
|
||||
return awg.New(m.stderr), nil
|
||||
case config.ProtocolVLESS, config.ProtocolVMess, config.ProtocolTrojan:
|
||||
return xray.New(m.stderr), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported protocol %q", p)
|
||||
}
|
||||
@@ -483,12 +486,14 @@ func (m *Manager) EnsureCore(proto config.Protocol) (string, error) {
|
||||
return hysteria2.EnsureBinary(m.binDir)
|
||||
case config.ProtocolAWG:
|
||||
return awg.EnsureBinary(m.binDir)
|
||||
case config.ProtocolVLESS, config.ProtocolVMess, config.ProtocolTrojan:
|
||||
return xray.EnsureBinary(m.binDir)
|
||||
default:
|
||||
return naive.EnsureBinary(m.binDir)
|
||||
}
|
||||
}
|
||||
|
||||
// EnsureAllCores installs naive + hysteria2 cores (AWG is embedded).
|
||||
// EnsureAllCores installs naive + hysteria2 + xray cores (AWG is embedded).
|
||||
func (m *Manager) EnsureAllCores() (map[string]string, error) {
|
||||
out := map[string]string{}
|
||||
p1, err := naive.EnsureBinary(m.binDir)
|
||||
@@ -506,5 +511,10 @@ func (m *Manager) EnsureAllCores() (map[string]string, error) {
|
||||
return out, fmt.Errorf("awg: %w", err)
|
||||
}
|
||||
out["awg"] = p3
|
||||
p4, err := xray.EnsureBinary(m.binDir)
|
||||
if err != nil {
|
||||
return out, fmt.Errorf("xray: %w", err)
|
||||
}
|
||||
out["xray"] = p4
|
||||
return out, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user