Release 1.9.0: add VLESS, VMess and Trojan via Xray-core.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"vpnclient/internal/protocols/awg"
|
||||
"vpnclient/internal/protocols/hysteria2"
|
||||
"vpnclient/internal/protocols/naive"
|
||||
"vpnclient/internal/protocols/xray"
|
||||
)
|
||||
|
||||
// Normalize normalizes a share/proxy URI for the given protocol (or auto-detect).
|
||||
@@ -26,11 +27,25 @@ func Normalize(proto config.Protocol, raw string) (normalized string, detected c
|
||||
case config.ProtocolAWG:
|
||||
u, rem, err := awg.NormalizeShareLink(raw)
|
||||
return u, config.ProtocolAWG, rem, err
|
||||
case config.ProtocolVLESS, config.ProtocolVMess, config.ProtocolTrojan:
|
||||
u, rem, err := xray.NormalizeShareLink(raw)
|
||||
if err != nil {
|
||||
return "", proto, "", err
|
||||
}
|
||||
detected = xray.DetectProtocol(u)
|
||||
if detected == "" {
|
||||
detected = proto
|
||||
}
|
||||
return u, detected, rem, nil
|
||||
case config.ProtocolNaive, "":
|
||||
if awg.Detect(raw) {
|
||||
u, rem, err := awg.NormalizeShareLink(raw)
|
||||
return u, config.ProtocolAWG, rem, err
|
||||
}
|
||||
if xray.Detect(raw) {
|
||||
u, rem, err := xray.NormalizeShareLink(raw)
|
||||
return u, xray.DetectProtocol(raw), rem, err
|
||||
}
|
||||
u, rem, err := naive.ParseShareLink(raw)
|
||||
if err != nil {
|
||||
if hysteria2.Detect(raw) {
|
||||
|
||||
Reference in New Issue
Block a user