diff --git a/V2rayU/ConfigWindow.swift b/V2rayU/ConfigWindow.swift index 109eec1..a87b2ea 100644 --- a/V2rayU/ConfigWindow.swift +++ b/V2rayU/ConfigWindow.swift @@ -528,7 +528,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel // grpc self.grpcServiceName.stringValue = v2rayConfig.streamGrpc.serviceName - self.grpcUseragent.stringValue = v2rayConfig.streamGrpc.user_agent + self.grpcUseragent.stringValue = v2rayConfig.streamGrpc.user_agent ?? "" self.grpcMulti.intValue = v2rayConfig.streamGrpc.multiMode ? 1 : 0 // ========================== stream end ======================= diff --git a/V2rayU/Import.swift b/V2rayU/Import.swift index 1a581bb..635cfdc 100644 --- a/V2rayU/Import.swift +++ b/V2rayU/Import.swift @@ -359,7 +359,7 @@ class ImportUri { // grpc v2ray.streamGrpc.serviceName = vmess.path - v2ray.streamGrpc.multiMode = vmess.type == "multi" // v2rayN + v2ray.streamGrpc.multiMode = vmess.grpcMode == "multi" // v2rayN // tcp v2ray.streamTcp.header.type = vmess.type diff --git a/V2rayU/Uri.swift b/V2rayU/Uri.swift index 34c9600..4a253c1 100644 --- a/V2rayU/Uri.swift +++ b/V2rayU/Uri.swift @@ -519,6 +519,7 @@ class VlessUri { var fp: String = "" // fingerprint var pbk: String = "" // reality public key var sid: String = "" // reality shortId + var grpcMode:String = "" // vless://f2a5064a-fabb-43ed-a2b6-8ffeb970df7f@00.com:443?flow=xtls-rprx-splite&encryption=none&security=xtls&sni=aaaaa&type=http&host=00.com&path=%2fvl#vless1 func encode() -> String { @@ -567,6 +568,9 @@ class VlessUri { break case "flow": self.flow = item.value as! String + if self.flow.isEmpty { + self.flow = "xtls-rprx-vision" + } break case "encryption": self.encryption = item.value as! String @@ -598,6 +602,12 @@ class VlessUri { case "sid": self.sid = item.value as! String break + case "serviceName": + self.path = item.value as! String + break + case "mode": + self.grpcMode = item.value as! String + break default: break } diff --git a/V2rayU/v2ray/v2rayStream.swift b/V2rayU/v2ray/v2rayStream.swift index 90c3df4..5e6be77 100644 --- a/V2rayU/v2ray/v2rayStream.swift +++ b/V2rayU/v2ray/v2rayStream.swift @@ -205,9 +205,10 @@ struct QuicSettingHeader: Codable { } struct GrpcSettings: Codable { + var authority: String? var serviceName: String = "" var multiMode: Bool = false - var user_agent: String = "" + var user_agent: String? var idle_timeout: Int = 60 var health_check_timeout: Int = 60 var permit_without_stream: Bool = false