mirror of https://github.com/oxen-io/lokinet
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
Swift
44 lines
1.4 KiB
Swift
// AppDelegateExtension.swift
|
|
// lifed from yggdrasil network ios port
|
|
//
|
|
|
|
import Foundation
|
|
import Lokinet
|
|
import NetworkExtension
|
|
|
|
class LokinetMain: PlatformAppDelegate {
|
|
var vpnManager = NETunnelProviderManager()
|
|
var app = NSApplication.shared()
|
|
let lokinetComponent = "org.lokinet.NetworkExtension"
|
|
var lokinetAdminTimer: DispatchSourceTimer?
|
|
|
|
func runMain() {
|
|
print("Starting up lokinet")
|
|
NETunnelProviderManager.loadAllFromPreferences { (savedManagers: [NETunnelProviderManager]?, error: Error?) in
|
|
if let error = error {
|
|
print(error)
|
|
}
|
|
|
|
if let savedManagers = savedManagers {
|
|
for manager in savedManagers {
|
|
if (manager.protocolConfiguration as? NETunnelProviderProtocol)?.providerBundleIdentifier == self.lokinetComponent {
|
|
print("Found saved VPN Manager")
|
|
self.vpnManager = manager
|
|
}
|
|
}
|
|
}
|
|
|
|
self.vpnManager.loadFromPreferences(completionHandler: { (error: Error?) in
|
|
if let error = error {
|
|
print(error)
|
|
}
|
|
self.vpnManager.localizedDescription = "Lokinet"
|
|
self.vpnManager.isEnabled = true
|
|
})
|
|
}
|
|
app.finishLaunching()
|
|
app.run()
|
|
print("end")
|
|
}
|
|
}
|