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"/>
<tabViewItems>
<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"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
@ -274,7 +274,7 @@ Gw
</view>
</tabViewItem>
<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"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>

View File

@ -112,7 +112,6 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
// add default
V2rayServer.add(remark: "default", json: "", isValid: false)
}
self.shadowsockMethod.removeAllItems()
self.shadowsockMethod.addItems(withTitles: V2rayOutboundShadowsockMethod)
@ -206,7 +205,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
v2rayConfig = V2rayConfig()
defer {
if self.configText.string.count > 0 && v2rayConfig.isValid {
if self.configText.string.count > 0 {
self.bindDataToView()
}
}
@ -241,17 +240,6 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
// export data to V2rayConfig
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 =======================
if self.switchProtocol.indexOfSelectedItem >= 0 {
v2rayConfig.serverProtocol = self.switchProtocol.titleOfSelectedItem!
@ -279,7 +267,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
// socks5
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()
sockUser.user = self.socks5User.stringValue
@ -373,12 +361,11 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
// socks5
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 {
self.socks5User.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].user
self.socks5Pass.stringValue = v2rayConfig.serverSocks5.servers[0].users[0].pass
}
// ========================== server end =======================
// ========================== stream start =======================
@ -578,7 +565,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
}
NSWorkspace.shared.open(url)
}
@IBAction func goStreamHelp(_ sender: Any) {
guard let url = URL(string: "https://www.v2ray.com/chapter_02/05_transport.html") else {
return
@ -703,17 +690,17 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
@IBAction func cancel(_ sender: NSButton) {
// hide dock icon and close all opened windows
_ = menuController.showDock(state: false)
_ = menuController.showDock(state: false)
}
@IBAction func goAdvanceSetting(_ sender: Any) {
preferencesWindowController.show(preferencePane: .advanceTab)
}
@IBAction func goSubscribeSetting(_ sender: Any) {
preferencesWindowController.show(preferencePane: .subscribeTab)
}
@IBAction func goRoutingRuleSetting(_ sender: Any) {
preferencesWindowController.show(preferencePane: .routingTab)
}

View File

@ -31,8 +31,11 @@ class Ping : NSObject {
host = cfg.serverShadowsocks.address
port = cfg.serverShadowsocks.port
} else if cfg.serverProtocol == V2rayProtocolOutbound.socks.rawValue {
if cfg.serverSocks5.servers.count == 0 {
return
}
host = cfg.serverSocks5.servers[0].address
port = Int(cfg.serverSocks5.servers[0].port) ?? 0
port = Int(cfg.serverSocks5.servers[0].port)
} else {
return
}

View File

@ -485,6 +485,7 @@ class V2rayConfig: NSObject {
outbound.settingShadowsocks = ss
break
case V2rayProtocolOutbound.socks:
print("self.serverSocks5", self.serverSocks5)
outbound.settingSocks = self.serverSocks5
break
default:
@ -549,7 +550,7 @@ class V2rayConfig: NSObject {
self.error = "missing socks.address";
return
}
if self.serverSocks5.servers[0].port.count == 0 {
if self.serverSocks5.servers[0].port == 0 {
self.error = "missing socks.port";
return
}
@ -562,10 +563,6 @@ class V2rayConfig: NSObject {
// check stream setting
switch self.streamNetwork {
case V2rayStreamSettings.network.h2.rawValue:
if self.streamH2.path.count == 0 {
// self.error = "missing streamSettings.httpSettings.path";
// return
}
break
case V2rayStreamSettings.network.ws.rawValue:
break
@ -999,20 +996,31 @@ class V2rayConfig: NSObject {
case .socks:
var settingSocks = V2rayOutboundSocks()
settingSocks.servers[0].address = jsonParams["settings"]["address"].stringValue
settingSocks.servers[0].port = jsonParams["settings"]["port"].stringValue
var servers: [V2rayOutboundSockServer] = []
var users: [V2rayOutboundSockUser] = []
jsonParams["settings"]["users"].arrayValue.forEach {
jsonParams["settings"]["servers"].arrayValue.forEach {
val in
var user = V2rayOutboundSockUser()
user.user = val["user"].stringValue
user.pass = val["pass"].stringValue
user.level = val["level"].intValue
var server = V2rayOutboundSockServer()
server.port = val["port"].intValue
server.address = val["address"].stringValue
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
users.append(user)
servers.append(server)
}
settingSocks.servers[0].users = users
settingSocks.servers = servers
// set into outbound
v2rayOutbound.settingSocks = settingSocks

View File

@ -188,7 +188,7 @@ struct V2rayOutboundSocks: Codable {
struct V2rayOutboundSockServer: Codable {
var address: String = ""
var port: String = ""
var port: Int = 0
var users: [V2rayOutboundSockUser] = [V2rayOutboundSockUser()]
}