Make sure the reference is not nil to packet flow. Thanks go out to "The Eskimo".

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jeroen Leenarts
2018-08-14 21:40:20 +02:00
parent fc72697d82
commit 335907309c
3 changed files with 11 additions and 3 deletions
@@ -41,7 +41,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
//TODO: Hardcoded values for addresses
let ipv4Settings = NEIPv4Settings(addresses: ["10.50.10.171"], subnetMasks: ["255.255.224.0"])
//TODO: Hardcoded values for allowed ips
ipv4Settings.includedRoutes = [NEIPv4Route(destinationAddress: "0.0.0.0", subnetMask: "0.0.0.0")]
ipv4Settings.includedRoutes = [NEIPv4Route.default()]
ipv4Settings.excludedRoutes = endpoints.split(separator: ",").compactMap { $0.split(separator: ":").first}.map {NEIPv4Route(destinationAddress: String($0), subnetMask: "255.255.255.255")}
//TODO IPv6 settings
@@ -58,12 +58,14 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
}
setTunnelNetworkSettings(newSettings) { [weak self](error) in
completionHandler(error)
self?.wireGuardWrapper.packetFlow = self?.packetFlow
self?.wireGuardWrapper.configured = true
self?.wireGuardWrapper.startReadingPackets()
completionHandler(error)
}
} else {
self.wireGuardWrapper.packetFlow = self.packetFlow
completionHandler(PacketTunnelProviderError.tunnelSetupFailed)
wireGuardWrapper.configured = false
}