mirror of
https://github.com/yggdrasil-network/yggdrasil-ios.git
synced 2025-04-28 14:15:09 +03:00
SwiftUI is happening
This commit is contained in:
parent
291b12b785
commit
feb0417b12
71 changed files with 983 additions and 2180 deletions
|
@ -55,6 +55,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
if let fd = self.tunnelFileDescriptor {
|
||||
do {
|
||||
try self.yggdrasil.takeOverTUN(fd)
|
||||
NSLog("Yggdrasil taken over TUN successfully")
|
||||
} catch {
|
||||
NSLog("Taking over TUN produced an error: " + error.localizedDescription)
|
||||
err = error
|
||||
|
@ -82,6 +83,8 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
NSLog("Yggdrasil completion handler called")
|
||||
completionHandler(nil)
|
||||
}
|
||||
} else {
|
||||
NSLog("Error in Yggdrasil startTunnel: No configuration JSON found")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -94,16 +97,27 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
|||
override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) {
|
||||
let request = String(data: messageData, encoding: .utf8)
|
||||
switch request {
|
||||
case "address":
|
||||
completionHandler?(self.yggdrasil.getAddressString().data(using: .utf8))
|
||||
case "subnet":
|
||||
completionHandler?(self.yggdrasil.getSubnetString().data(using: .utf8))
|
||||
case "coords":
|
||||
completionHandler?(self.yggdrasil.getCoordsString().data(using: .utf8))
|
||||
case "peers":
|
||||
completionHandler?(self.yggdrasil.getPeersJSON().data(using: .utf8))
|
||||
case "dht":
|
||||
completionHandler?(self.yggdrasil.getDHTJSON().data(using: .utf8))
|
||||
case "summary":
|
||||
let summary = YggdrasilSummary(
|
||||
address: self.yggdrasil.getAddressString(),
|
||||
subnet: self.yggdrasil.getSubnetString(),
|
||||
publicKey: self.yggdrasil.getPublicKeyString()
|
||||
)
|
||||
if let json = try? JSONEncoder().encode(summary) {
|
||||
completionHandler?(json)
|
||||
}
|
||||
|
||||
case "status":
|
||||
let status = YggdrasilStatus(
|
||||
enabled: true,
|
||||
coords: self.yggdrasil.getCoordsString(),
|
||||
peers: self.yggdrasil.getPeersJSON().data(using: .utf8) ?? Data(),
|
||||
dht: self.yggdrasil.getDHTJSON().data(using: .utf8) ?? Data()
|
||||
)
|
||||
if let json = try? JSONEncoder().encode(status) {
|
||||
completionHandler?(json)
|
||||
}
|
||||
|
||||
default:
|
||||
completionHandler?(nil)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.developer.networking.multicast</key>
|
||||
<true/>
|
||||
<key>com.apple.developer.networking.networkextension</key>
|
||||
<array>
|
||||
<string>packet-tunnel-provider</string>
|
||||
</array>
|
||||
<key>com.apple.developer.networking.vpn.api</key>
|
||||
<array>
|
||||
<string>allow-vpn</string>
|
||||
</array>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.eu.neilalexander.yggdrasil</string>
|
||||
</array>
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.server</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
Loading…
Add table
Add a link
Reference in a new issue