Add rudimentary NetworkSettings generation
This commit is contained in:
parent
22e41203fb
commit
309db8085d
8 changed files with 418 additions and 10 deletions
|
|
@ -4,7 +4,9 @@ import OSLog
|
|||
|
||||
class PacketTunnelProvider: NEPacketTunnelProvider {
|
||||
let logger = Logger(subsystem: "com.hackclub.burrow", category: "General")
|
||||
|
||||
override func startTunnel(options: [String: NSObject]?, completionHandler: @escaping (Error?) -> Void) {
|
||||
libburrow.initialize_oslog()
|
||||
let fild = libburrow.retrieve()
|
||||
if fild == -1 {
|
||||
// Not sure if this is the right way to return an error
|
||||
|
|
@ -17,6 +19,8 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
completionHandler(err)
|
||||
}
|
||||
logger.info("fd: \(fild)")
|
||||
let networkSettings = genNetSec(fild: fild)
|
||||
logger.info("Network Settings: - ipv4:\(networkSettings.ipv4Settings) -mtu: \(networkSettings.mtu)")
|
||||
completionHandler(nil)
|
||||
}
|
||||
|
||||
|
|
@ -24,6 +28,14 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
completionHandler()
|
||||
}
|
||||
|
||||
func genNetSec(fild: Int32) -> NEPacketTunnelNetworkSettings {
|
||||
logger.debug("getting Network settings with fild \(fild) ...")
|
||||
let settings = libburrow.getNetworkSettings(fild)
|
||||
logger.debug("genNetSec Called: \n ipv4: \(settings.ipv4_addr) \n netmask: \(settings.ipv4_netmask) \n mtu: \(settings.mtu)")
|
||||
let tNetworksettings = TunCrateNetworkSettings(addr: settings.ipv4_addr, netmask: settings.ipv4_netmask, mtu: settings.mtu)
|
||||
return tNetworksettings.generateNetworkSettings()
|
||||
}
|
||||
|
||||
override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)?) {
|
||||
if let handler = completionHandler {
|
||||
handler(messageData)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue