Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/yanue/V2rayU
Browse files Browse the repository at this point in the history
  • Loading branch information
yanue committed Aug 14, 2022
2 parents 16b9869 + bd89d36 commit e8f0988
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 4 deletions.
1 change: 1 addition & 0 deletions V2rayU/ConfigWindow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
@IBOutlet weak var trojanPort: NSTextField!
@IBOutlet weak var trojanPass: NSTextField!
@IBOutlet weak var trojanAlpn: NSTextField!
@IBOutlet weak var trojanSni: NSTextField!

@IBOutlet weak var networkView: NSView!

Expand Down
3 changes: 2 additions & 1 deletion V2rayU/Import.swift
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ class ImportUri {

func importTrojanUri(uri: String) {
if URL(string: uri) == nil {
self.error = "invalid ssr url"
self.error = "invalid trojan url"
return
}
self.uri = uri
Expand All @@ -313,6 +313,7 @@ class ImportUri {
svr.address = trojan.host
svr.port = trojan.port
svr.password = trojan.password
svr.sni = trojan.sni
NSLog("\(svr)")
v2ray.serverTrojan = svr
v2ray.enableMux = false
Expand Down
24 changes: 22 additions & 2 deletions V2rayU/Uri.swift
Original file line number Diff line number Diff line change
Expand Up @@ -391,12 +391,19 @@ class TrojanUri {
var port: Int = 443
var password: String = ""
var remark: String = ""

var sni: String = ""
var flow: String = ""
var security: String = ""
var alpn: String = ""
var error: String = ""

// trojan://password@remote_host:remote_port
// trojan://pass@remote_host:443?flow=xtls-rprx-origin&security=xtls&sni=sni&host=remote_host#trojan
func encode() -> String {
let uri = self.password + "@" + self.host + ":" + String(self.port)
uri.queryItems = [
URLQueryItem(name: "flow", value: self.flow),
URLQueryItem(name: "sni", value: self.sni),
]
return "trojan://" + uri + "#" + self.remark
}

Expand All @@ -416,6 +423,19 @@ class TrojanUri {
self.host = host
self.port = Int(port)
self.password = password
let queryItems = url.queryParams()
for item in queryItems {
switch item.key {
case "sni":
self.sni = item.value as! String
break
case "flow":
self.flow = item.value as! String
break
default:
break
}
}
self.remark = (url.fragment ?? "trojan").urlDecoded()
}
}
Expand Down
2 changes: 1 addition & 1 deletion V2rayU/V2raySubscribe.swift
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ class V2raySubSync: NSObject {
}

if URL(string: uri) == nil {
logTip(title: "fail: ", uri: uri, informativeText: "no found ss://, ssr://, vmess://")
logTip(title: "fail: ", uri: uri, informativeText: "no found ss://, ssr://, vmess://, vless://, trojan://")
return
}

Expand Down
1 change: 1 addition & 0 deletions V2rayU/v2ray/v2rayOutbound.swift
Original file line number Diff line number Diff line change
Expand Up @@ -290,4 +290,5 @@ struct V2rayOutboundTrojanServer: Codable {
var password: String = ""
var level: Int = 0
var email: String = ""
var sni: String = ""
}

0 comments on commit e8f0988

Please sign in to comment.