This commit is contained in:
yanue 2020-03-07 20:02:09 +08:00
parent 40d7a655f1
commit c51bd4a684
9 changed files with 23 additions and 54 deletions

Binary file not shown.

View File

@ -1062,7 +1062,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.yanue.V2rayU;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -1090,7 +1090,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 2.0.0;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.yanue.V2rayU;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.0.0</string>
<string>2.1.0</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
@ -34,7 +34,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>2.0.0</string>
<string>2.1.0</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>

View File

@ -249,4 +249,4 @@ extension FileManager {
func getAppVersion() -> String {
return "\(Bundle.main.infoDictionary!["CFBundleShortVersionString"] ?? "")"
}
}

View File

@ -230,49 +230,15 @@ class V2rayLaunch: NSObject {
static func checkPort(host: String, port: String, tip: String) -> Bool {
// shell("/bin/bash",["-c","cd ~ && ls -la"])
let res = shell(launchPath: "/bin/bash", arguments: ["-c", "cd " + AppResourcesPath + " && ./V2rayUHelper -cmd port -h " + host + " -p " + port])
let cmd = "cd " + AppResourcesPath + " && chmod +x ./V2rayUHelper && ./V2rayUHelper -cmd port -h " + host + " -p " + port
let res = shell(launchPath: "/bin/bash", arguments: ["-c", cmd])
NSLog("checkPort: res=(\(String(describing: res))) cmd=(\(cmd))")
if res != "ok" {
makeToast(message: tip + " error: " + (res ?? ""), displayDuration: 5)
makeToast(message: tip + " error - " + (res ?? ""), displayDuration: 5)
return false
}
return true
}
static func checkTcpPort(port: in_port_t) -> (Bool, descr: String) {
let socketFileDescriptor = socket(AF_INET, SOCK_STREAM, 0)
if socketFileDescriptor == -1 {
return (false, "SocketCreationFailed, \(V2rayLaunch.descrOfPortError())")
}
var addr = sockaddr_in()
let sizeOfSockAddr = MemoryLayout<sockaddr_in>.size
addr.sin_len = __uint8_t(sizeOfSockAddr)
addr.sin_family = sa_family_t(AF_INET)
addr.sin_port = Int(OSHostByteOrder()) == OSLittleEndian ? _OSSwapInt16(port) : port
addr.sin_addr = in_addr(s_addr: inet_addr("127.0.0.1"))
addr.sin_zero = (0, 0, 0, 0, 0, 0, 0, 0)
var bind_addr = sockaddr()
memcpy(&bind_addr, &addr, Int(sizeOfSockAddr))
if Darwin.bind(socketFileDescriptor, &bind_addr, socklen_t(sizeOfSockAddr)) == -1 {
let details = descrOfPortError()
release(socket: socketFileDescriptor)
return (false, "\(port), BindFailed, \(details)")
}
if listen(socketFileDescriptor, SOMAXCONN) == -1 {
let details = descrOfPortError()
release(socket: socketFileDescriptor)
return (false, "\(port), ListenFailed, \(details)")
}
release(socket: socketFileDescriptor)
return (true, "\(port) is free for use")
}
static func release(socket: Int32) {
Darwin.shutdown(socket, SHUT_RDWR)
close(socket)
}
static func descrOfPortError() -> String {
return String.init(cString: (UnsafePointer(strerror(errno))))
}
}

View File

@ -14,4 +14,10 @@ sudo chown root:admin ${cmd}
sudo chmod a+rx ${cmd}
sudo chmod +s ${cmd}
cmd="./V2rayUHelper"
sudo chown root:admin ${cmd}
sudo chmod a+rx ${cmd}
sudo chmod +s ${cmd}
echo 'done'

View File

@ -125,6 +125,9 @@ class PingSpeed: NSObject {
let cmd = "cd " + AppResourcesPath + " && chmod +x ./V2rayUHelper && ./V2rayUHelper -cmd ping -t 5s -f ./" + pingJsonFileName
// print("cmd", cmd)
let res = shell(launchPath: "/bin/bash", arguments: ["-c", cmd])
NSLog("pingInCmd: res=(\(String(describing: res))) cmd=(\(cmd))")
if res?.contains("ok") ?? false {
// res is: ok config.xxxx
fastV2rayName = res!.replacingOccurrences(of: "ok ", with: "")

View File

@ -1168,7 +1168,7 @@ class V2rayConfig: NSObject {
}
if (V2rayStreamSettings.security(rawValue: steamJson["security"].stringValue) == nil) {
self.errors += ["invalid " + preTxt + ".streamSettings.security"]
self.streamTlsSecurity = V2rayStreamSettings.security.none.rawValue
} else {
// set security
stream.security = V2rayStreamSettings.security(rawValue: steamJson["security"].stringValue)!

View File

@ -70,20 +70,14 @@ func main() {
}
func checkPort() {
if len(host) == 0 || len(port) == 0 {
flag.Usage()
os.Exit(1)
return
}
_, err := net.Listen("tcp", host+":"+port)
if err != nil {
flag.Usage()
os.Exit(2)
fmt.Println(err.Error())
return
}
fmt.Println("ok")
return
}
type Server struct {