mirror of
https://github.com/yanue/V2rayU.git
synced 2025-06-27 05:30:09 +00:00
fix #406
This commit is contained in:
parent
8577c414a1
commit
44688d84c0
@ -174,7 +174,7 @@ Gw
|
|||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<tabViewItems>
|
<tabViewItems>
|
||||||
<tabViewItem label="Import" identifier="Import" id="BS9-X1-ueN">
|
<tabViewItem label="Import" identifier="Import" id="BS9-X1-ueN">
|
||||||
<view key="view" ambiguous="YES" id="Ab3-ML-cu8">
|
<view key="view" id="Ab3-ML-cu8">
|
||||||
<rect key="frame" x="10" y="33" width="394" height="491"/>
|
<rect key="frame" x="10" y="33" width="394" height="491"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
@ -274,7 +274,7 @@ Gw
|
|||||||
</view>
|
</view>
|
||||||
</tabViewItem>
|
</tabViewItem>
|
||||||
<tabViewItem label="Manual" identifier="Manual" id="qq1-yV-VsK">
|
<tabViewItem label="Manual" identifier="Manual" id="qq1-yV-VsK">
|
||||||
<view key="view" id="YXI-Uw-7SR">
|
<view key="view" ambiguous="YES" id="YXI-Uw-7SR">
|
||||||
<rect key="frame" x="10" y="33" width="394" height="491"/>
|
<rect key="frame" x="10" y="33" width="394" height="491"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
|
@ -112,7 +112,6 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
// add default
|
// add default
|
||||||
V2rayServer.add(remark: "default", json: "", isValid: false)
|
V2rayServer.add(remark: "default", json: "", isValid: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.shadowsockMethod.removeAllItems()
|
self.shadowsockMethod.removeAllItems()
|
||||||
self.shadowsockMethod.addItems(withTitles: V2rayOutboundShadowsockMethod)
|
self.shadowsockMethod.addItems(withTitles: V2rayOutboundShadowsockMethod)
|
||||||
|
|
||||||
@ -206,7 +205,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
v2rayConfig = V2rayConfig()
|
v2rayConfig = V2rayConfig()
|
||||||
|
|
||||||
defer {
|
defer {
|
||||||
if self.configText.string.count > 0 && v2rayConfig.isValid {
|
if self.configText.string.count > 0 {
|
||||||
self.bindDataToView()
|
self.bindDataToView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -241,17 +240,6 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
|
|
||||||
// export data to V2rayConfig
|
// export data to V2rayConfig
|
||||||
func exportData() {
|
func exportData() {
|
||||||
// ========================== base start =======================
|
|
||||||
// base
|
|
||||||
// v2rayConfig.httpPort = self.httpPort.stringValue.replacingOccurrences(of: ",", with: "")
|
|
||||||
// v2rayConfig.socksPort = self.sockPort.stringValue.replacingOccurrences(of: ",", with: "")
|
|
||||||
// v2rayConfig.enableUdp = self.enableUdp.state.rawValue > 0
|
|
||||||
// v2rayConfig.enableMux = self.enableMux.state.rawValue > 0
|
|
||||||
// v2rayConfig.dns = self.dnsServers.stringValue
|
|
||||||
// v2rayConfig.mux = Int(self.muxConcurrent.intValue)
|
|
||||||
// v2rayConfig.isNewVersion = self.version4.state.rawValue > 0
|
|
||||||
// ========================== base end =======================
|
|
||||||
|
|
||||||
// ========================== server start =======================
|
// ========================== server start =======================
|
||||||
if self.switchProtocol.indexOfSelectedItem >= 0 {
|
if self.switchProtocol.indexOfSelectedItem >= 0 {
|
||||||
v2rayConfig.serverProtocol = self.switchProtocol.titleOfSelectedItem!
|
v2rayConfig.serverProtocol = self.switchProtocol.titleOfSelectedItem!
|
||||||
@ -279,7 +267,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
|
|
||||||
// socks5
|
// socks5
|
||||||
v2rayConfig.serverSocks5.servers[0].address = self.socks5Addr.stringValue
|
v2rayConfig.serverSocks5.servers[0].address = self.socks5Addr.stringValue
|
||||||
v2rayConfig.serverSocks5.servers[0].port = self.socks5Port.stringValue
|
v2rayConfig.serverSocks5.servers[0].port = Int(self.socks5Port.intValue)
|
||||||
|
|
||||||
var sockUser = V2rayOutboundSockUser()
|
var sockUser = V2rayOutboundSockUser()
|
||||||
sockUser.user = self.socks5User.stringValue
|
sockUser.user = self.socks5User.stringValue
|
||||||
@ -373,12 +361,11 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
|
|
||||||
// socks5
|
// socks5
|
||||||
self.socks5Addr.stringValue = v2rayConfig.serverSocks5.servers[0].address
|
self.socks5Addr.stringValue = v2rayConfig.serverSocks5.servers[0].address
|
||||||
self.socks5Port.stringValue = v2rayConfig.serverSocks5.servers[0].port
|
self.socks5Port.stringValue = String(v2rayConfig.serverSocks5.servers[0].port)
|
||||||
if v2rayConfig.serverSocks5.servers[0].users.count > 0 {
|
if v2rayConfig.serverSocks5.servers[0].users.count > 0 {
|
||||||
self.socks5User.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].user
|
self.socks5User.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].user
|
||||||
self.socks5Pass.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].pass
|
self.socks5Pass.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].pass
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========================== server end =======================
|
// ========================== server end =======================
|
||||||
|
|
||||||
// ========================== stream start =======================
|
// ========================== stream start =======================
|
||||||
@ -578,7 +565,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
}
|
}
|
||||||
NSWorkspace.shared.open(url)
|
NSWorkspace.shared.open(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func goStreamHelp(_ sender: Any) {
|
@IBAction func goStreamHelp(_ sender: Any) {
|
||||||
guard let url = URL(string: "https://www.v2ray.com/chapter_02/05_transport.html") else {
|
guard let url = URL(string: "https://www.v2ray.com/chapter_02/05_transport.html") else {
|
||||||
return
|
return
|
||||||
@ -703,17 +690,17 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
|
|||||||
|
|
||||||
@IBAction func cancel(_ sender: NSButton) {
|
@IBAction func cancel(_ sender: NSButton) {
|
||||||
// hide dock icon and close all opened windows
|
// hide dock icon and close all opened windows
|
||||||
_ = menuController.showDock(state: false)
|
_ = menuController.showDock(state: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func goAdvanceSetting(_ sender: Any) {
|
@IBAction func goAdvanceSetting(_ sender: Any) {
|
||||||
preferencesWindowController.show(preferencePane: .advanceTab)
|
preferencesWindowController.show(preferencePane: .advanceTab)
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func goSubscribeSetting(_ sender: Any) {
|
@IBAction func goSubscribeSetting(_ sender: Any) {
|
||||||
preferencesWindowController.show(preferencePane: .subscribeTab)
|
preferencesWindowController.show(preferencePane: .subscribeTab)
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func goRoutingRuleSetting(_ sender: Any) {
|
@IBAction func goRoutingRuleSetting(_ sender: Any) {
|
||||||
preferencesWindowController.show(preferencePane: .routingTab)
|
preferencesWindowController.show(preferencePane: .routingTab)
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,11 @@ class Ping : NSObject {
|
|||||||
host = cfg.serverShadowsocks.address
|
host = cfg.serverShadowsocks.address
|
||||||
port = cfg.serverShadowsocks.port
|
port = cfg.serverShadowsocks.port
|
||||||
} else if cfg.serverProtocol == V2rayProtocolOutbound.socks.rawValue {
|
} else if cfg.serverProtocol == V2rayProtocolOutbound.socks.rawValue {
|
||||||
|
if cfg.serverSocks5.servers.count == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
host = cfg.serverSocks5.servers[0].address
|
host = cfg.serverSocks5.servers[0].address
|
||||||
port = Int(cfg.serverSocks5.servers[0].port) ?? 0
|
port = Int(cfg.serverSocks5.servers[0].port)
|
||||||
} else {
|
} else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -485,6 +485,7 @@ class V2rayConfig: NSObject {
|
|||||||
outbound.settingShadowsocks = ss
|
outbound.settingShadowsocks = ss
|
||||||
break
|
break
|
||||||
case V2rayProtocolOutbound.socks:
|
case V2rayProtocolOutbound.socks:
|
||||||
|
print("self.serverSocks5", self.serverSocks5)
|
||||||
outbound.settingSocks = self.serverSocks5
|
outbound.settingSocks = self.serverSocks5
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
@ -549,7 +550,7 @@ class V2rayConfig: NSObject {
|
|||||||
self.error = "missing socks.address";
|
self.error = "missing socks.address";
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if self.serverSocks5.servers[0].port.count == 0 {
|
if self.serverSocks5.servers[0].port == 0 {
|
||||||
self.error = "missing socks.port";
|
self.error = "missing socks.port";
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -562,10 +563,6 @@ class V2rayConfig: NSObject {
|
|||||||
// check stream setting
|
// check stream setting
|
||||||
switch self.streamNetwork {
|
switch self.streamNetwork {
|
||||||
case V2rayStreamSettings.network.h2.rawValue:
|
case V2rayStreamSettings.network.h2.rawValue:
|
||||||
if self.streamH2.path.count == 0 {
|
|
||||||
// self.error = "missing streamSettings.httpSettings.path";
|
|
||||||
// return
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case V2rayStreamSettings.network.ws.rawValue:
|
case V2rayStreamSettings.network.ws.rawValue:
|
||||||
break
|
break
|
||||||
@ -999,20 +996,31 @@ class V2rayConfig: NSObject {
|
|||||||
|
|
||||||
case .socks:
|
case .socks:
|
||||||
var settingSocks = V2rayOutboundSocks()
|
var settingSocks = V2rayOutboundSocks()
|
||||||
settingSocks.servers[0].address = jsonParams["settings"]["address"].stringValue
|
var servers: [V2rayOutboundSockServer] = []
|
||||||
settingSocks.servers[0].port = jsonParams["settings"]["port"].stringValue
|
|
||||||
|
|
||||||
var users: [V2rayOutboundSockUser] = []
|
jsonParams["settings"]["servers"].arrayValue.forEach {
|
||||||
jsonParams["settings"]["users"].arrayValue.forEach {
|
|
||||||
val in
|
val in
|
||||||
var user = V2rayOutboundSockUser()
|
var server = V2rayOutboundSockServer()
|
||||||
user.user = val["user"].stringValue
|
server.port = val["port"].intValue
|
||||||
user.pass = val["pass"].stringValue
|
server.address = val["address"].stringValue
|
||||||
user.level = val["level"].intValue
|
|
||||||
|
var users: [V2rayOutboundSockUser] = []
|
||||||
|
val["users"].arrayValue.forEach {
|
||||||
|
val in
|
||||||
|
var user = V2rayOutboundSockUser()
|
||||||
|
user.user = val["user"].stringValue
|
||||||
|
user.pass = val["pass"].stringValue
|
||||||
|
user.level = val["level"].intValue
|
||||||
|
// append
|
||||||
|
users.append(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
server.users = users
|
||||||
// append
|
// append
|
||||||
users.append(user)
|
servers.append(server)
|
||||||
}
|
}
|
||||||
settingSocks.servers[0].users = users
|
|
||||||
|
settingSocks.servers = servers
|
||||||
|
|
||||||
// set into outbound
|
// set into outbound
|
||||||
v2rayOutbound.settingSocks = settingSocks
|
v2rayOutbound.settingSocks = settingSocks
|
||||||
|
@ -188,7 +188,7 @@ struct V2rayOutboundSocks: Codable {
|
|||||||
|
|
||||||
struct V2rayOutboundSockServer: Codable {
|
struct V2rayOutboundSockServer: Codable {
|
||||||
var address: String = ""
|
var address: String = ""
|
||||||
var port: String = ""
|
var port: Int = 0
|
||||||
var users: [V2rayOutboundSockUser] = [V2rayOutboundSockUser()]
|
var users: [V2rayOutboundSockUser] = [V2rayOutboundSockUser()]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user