This commit is contained in:
yanue 2020-03-02 11:11:00 +08:00
parent 8577c414a1
commit 44688d84c0
5 changed files with 37 additions and 39 deletions

View File

@ -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>

View File

@ -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)
} }

View File

@ -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
} }

View File

@ -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

View File

@ -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()]
} }