improve: try fix "open port fail" error.
This commit is contained in:
parent
42d3d17cd0
commit
ebab2f66f5
|
@ -100,7 +100,9 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||||
setupData()
|
setupData()
|
||||||
runAfterConfigReload = { [weak self] in
|
runAfterConfigReload = { [weak self] in
|
||||||
self?.selectOutBoundModeWithMenory()
|
self?.selectOutBoundModeWithMenory()
|
||||||
self?.selectAllowLanWithMenory()
|
if !ConfigManager.builtInApiMode {
|
||||||
|
self?.selectAllowLanWithMenory()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
updateConfig(showNotification: false)
|
updateConfig(showNotification: false)
|
||||||
updateLoggingLevel()
|
updateLoggingLevel()
|
||||||
|
@ -353,7 +355,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.log("Trying start proxy")
|
Logger.log("Trying start proxy")
|
||||||
let string = run(ConfigManager.builtInApiMode.goObject())?.toString() ?? ""
|
let string = run(ConfigManager.builtInApiMode.goObject(), ConfigManager.allowConnectFromLan.goObject())?.toString() ?? ""
|
||||||
let jsonData = string.data(using: .utf8) ?? Data()
|
let jsonData = string.data(using: .utf8) ?? Data()
|
||||||
if let res = try? JSONDecoder().decode(StartProxyResp.self, from: jsonData) {
|
if let res = try? JSONDecoder().decode(StartProxyResp.self, from: jsonData) {
|
||||||
let port = res.externalController.components(separatedBy: ":").last ?? "9090"
|
let port = res.externalController.components(separatedBy: ":").last ?? "9090"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
module github.com/yichengchen/clashX/ClashX
|
module github.com/yichengchen/clashX/ClashX
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Dreamacro/clash v0.20.1-0.20200508135217-3638b077cdc5
|
github.com/Dreamacro/clash v0.20.1-0.20200512032953-3a27cfc4a130
|
||||||
github.com/oschwald/geoip2-golang v1.4.0
|
github.com/oschwald/geoip2-golang v1.4.0
|
||||||
github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
|
github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
github.com/Dreamacro/clash v0.20.1-0.20200508135217-3638b077cdc5 h1:0B7URouk7YzZoVOTNl6/rTCvu39+zFe7sroCVf6RT0Y=
|
github.com/Dreamacro/clash v0.20.1-0.20200512032953-3a27cfc4a130 h1:d4iusQxlY7rPXzkIUIczLZazoRXusB1bEth07CkPVY8=
|
||||||
github.com/Dreamacro/clash v0.20.1-0.20200508135217-3638b077cdc5/go.mod h1:KiPMTu1n6emQzUyY/A7W4mZYzQLfhToryDUp8ypta7E=
|
github.com/Dreamacro/clash v0.20.1-0.20200512032953-3a27cfc4a130/go.mod h1:KiPMTu1n6emQzUyY/A7W4mZYzQLfhToryDUp8ypta7E=
|
||||||
github.com/Dreamacro/go-shadowsocks2 v0.1.5 h1:BizWSjmwzAyQoslz6YhJYMiAGT99j9cnm9zlxVr+kyI=
|
github.com/Dreamacro/go-shadowsocks2 v0.1.5 h1:BizWSjmwzAyQoslz6YhJYMiAGT99j9cnm9zlxVr+kyI=
|
||||||
github.com/Dreamacro/go-shadowsocks2 v0.1.5/go.mod h1:LSXCjyHesPY3pLjhwff1mQX72ItcBT/N2xNC685cYeU=
|
github.com/Dreamacro/go-shadowsocks2 v0.1.5/go.mod h1:LSXCjyHesPY3pLjhwff1mQX72ItcBT/N2xNC685cYeU=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
|
|
@ -36,7 +36,7 @@ func initClashCore() {
|
||||||
constant.SetConfig(configFile)
|
constant.SetConfig(configFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseConfig(checkPort bool) (*config.Config, error) {
|
func parseDefaultConfigThenStart(checkPort, allowLan bool) (*config.Config, error) {
|
||||||
cfg, err := executor.Parse()
|
cfg, err := executor.Parse()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -50,8 +50,8 @@ func parseConfig(checkPort bool) (*config.Config, error) {
|
||||||
cfg.General.ExternalController = "127.0.0.1:" + strconv.Itoa(port)
|
cfg.General.ExternalController = "127.0.0.1:" + strconv.Itoa(port)
|
||||||
cfg.General.Secret = ""
|
cfg.General.Secret = ""
|
||||||
}
|
}
|
||||||
|
cfg.General.AllowLan = allowLan
|
||||||
}
|
}
|
||||||
|
|
||||||
go route.Start(cfg.General.ExternalController, cfg.General.Secret)
|
go route.Start(cfg.General.ExternalController, cfg.General.Secret)
|
||||||
|
|
||||||
executor.ApplyConfig(cfg, true)
|
executor.ApplyConfig(cfg, true)
|
||||||
|
@ -74,8 +74,8 @@ func verifyClashConfig(content *C.char) *C.char {
|
||||||
}
|
}
|
||||||
|
|
||||||
//export run
|
//export run
|
||||||
func run(checkConfig bool) *C.char {
|
func run(checkConfig, allowLan bool) *C.char {
|
||||||
cfg, err := parseConfig(checkConfig)
|
cfg, err := parseDefaultConfigThenStart(checkConfig,allowLan)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return C.CString(err.Error())
|
return C.CString(err.Error())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue