App updates

This commit is contained in:
Neil Alexander 2024-04-16 21:35:51 +01:00
parent 2cb5eebcd2
commit 5fbb735f56
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
9 changed files with 204 additions and 91 deletions

View file

@ -98,25 +98,28 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
let request = String(data: messageData, encoding: .utf8)
switch request {
case "summary":
let pj = self.yggdrasil.getPeersJSON()
var peers: [YggdrasilPeer] = []
do {
peers = try JSONDecoder().decode(
[YggdrasilPeer].self,
from: pj.data(using: .utf8)!
)
} catch {
NSLog("JSON Error: \(error)")
}
let summary = YggdrasilSummary(
address: self.yggdrasil.getAddressString(),
subnet: self.yggdrasil.getSubnetString(),
publicKey: self.yggdrasil.getPublicKeyString()
publicKey: self.yggdrasil.getPublicKeyString(),
enabled: true,
peers: peers.sorted(by: { a, b in
a.remote < b.remote
})
)
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)