forked from I2P_Developers/i2p.i2p
Mac OSX Launcher: Misc updates related to router management.
This commit is contained in:
@@ -57,7 +57,7 @@ import Foundation
|
||||
// javaHome will have a trailing \n which we remove to not break the cli
|
||||
self.javaBinary = (self.javaHome+"/bin/java").replace(target: "\n", withString: "")
|
||||
print("DetectJava.javaHome did change to "+self.javaHome)
|
||||
RouterManager.shared().eventManager.trigger(eventName: "java_found", information: self.javaHome)
|
||||
//RouterManager.shared().eventManager.trigger(eventName: "java_found", information: self.javaHome)
|
||||
}
|
||||
};
|
||||
private var testedEnv : Bool = false
|
||||
|
||||
@@ -30,7 +30,7 @@ class RouterManager : NSObject {
|
||||
|
||||
private static func handleRouterException(information:Any?) {
|
||||
Logger.MLog(level:1,"event! - handle router exception")
|
||||
Logger.MLog(level:1,information as! String)
|
||||
Logger.MLog(level:1,information as? String)
|
||||
}
|
||||
private static func handleRouterStart(information:Any?) {
|
||||
Logger.MLog(level:1,"event! - handle router start")
|
||||
@@ -49,14 +49,15 @@ class RouterManager : NSObject {
|
||||
RouterProcessStatus.isRouterRunning = false
|
||||
}
|
||||
private static func handleRouterPid(information:Any?) {
|
||||
Logger.MLog(level:1,"".appendingFormat("event! - handle router pid: ", information as! String!))
|
||||
Logger.MLog(level:1,"".appendingFormat("event! - handle router pid: ", information as! String))
|
||||
if (information != nil) {
|
||||
let intPid = Int(information as! String)
|
||||
print("Router pid is \(String(describing: intPid))..")
|
||||
}
|
||||
}
|
||||
private static func handleRouterVersion(information:Any?) {
|
||||
do {
|
||||
Logger.MLog(level:1, "".appendingFormat("event! - handle router version: ", information as! String!))
|
||||
Logger.MLog(level:1, "".appendingFormat("event! - handle router version: ", information as! String))
|
||||
guard let currentVersion : String = information as? String else {
|
||||
throw ErrorsInRouterMgmr.InvalidVersion
|
||||
}
|
||||
|
||||
@@ -56,47 +56,3 @@ extension RouterProcessStatus {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extension RouterProcessStatus {
|
||||
static func checkTcpPortForListen(port: in_port_t) -> (Bool, descr: String){
|
||||
|
||||
let socketFileDescriptor = socket(AF_INET, SOCK_STREAM, 0)
|
||||
if socketFileDescriptor == -1 {
|
||||
return (false, "SocketCreationFailed, \(descriptionOfLastError())")
|
||||
}
|
||||
|
||||
var addr = sockaddr_in()
|
||||
let sizeOfSockkAddr = MemoryLayout<sockaddr_in>.size
|
||||
addr.sin_len = __uint8_t(sizeOfSockkAddr)
|
||||
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("0.0.0.0"))
|
||||
addr.sin_zero = (0, 0, 0, 0, 0, 0, 0, 0)
|
||||
var bind_addr = sockaddr()
|
||||
memcpy(&bind_addr, &addr, Int(sizeOfSockkAddr))
|
||||
|
||||
if Darwin.bind(socketFileDescriptor, &bind_addr, socklen_t(sizeOfSockkAddr)) == -1 {
|
||||
let details = descriptionOfLastError()
|
||||
release(socket: socketFileDescriptor)
|
||||
return (false, "\(port), BindFailed, \(details)")
|
||||
}
|
||||
if listen(socketFileDescriptor, SOMAXCONN ) == -1 {
|
||||
let details = descriptionOfLastError()
|
||||
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 descriptionOfLastError() -> String {
|
||||
return String(cString: UnsafePointer(strerror(errno)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ class RouterRunner: NSObject {
|
||||
|
||||
let plistName = String(NSString(format: "%@.I2PRouter.plist", APPDOMAIN))
|
||||
|
||||
//let appSupportPath = FileManager.default.urls(for: FileManager.SearchPathDirectory.applicationSupportDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)
|
||||
let appSupportPath = FileManager.default.urls(for: FileManager.SearchPathDirectory.applicationSupportDirectory, in: FileManager.SearchPathDomainMask.userDomainMask)
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
@@ -72,7 +72,9 @@ class RouterRunner: NSObject {
|
||||
let jars = try! FileManager.default.contentsOfDirectory(atPath: basePath+"/lib")
|
||||
var classpath:String = "."
|
||||
for jar in jars {
|
||||
classpath += ":"+basePath+"/lib/"+jar
|
||||
if (jar.hasSuffix(".jar")) {
|
||||
classpath += ":"+basePath+"/lib/"+jar
|
||||
}
|
||||
}
|
||||
|
||||
var cliArgs:[String] = [
|
||||
|
||||
Reference in New Issue
Block a user