aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuardNetworkExtension/PacketTunnelProvider.swift
diff options
context:
space:
mode:
authorJeroen Leenarts <jeroen.leenarts@gmail.com>2018-08-12 21:44:53 +0200
committerJeroen Leenarts <jeroen.leenarts@gmail.com>2018-08-12 21:49:38 +0200
commit41f9a64d9fc052551c182a9b0f2ea7b4a6aad531 (patch)
tree6a8a89fb1b764176158f872be76252ac5a11d24b /WireGuardNetworkExtension/PacketTunnelProvider.swift
parentUniversal logging. (diff)
downloadwireguard-apple-41f9a64d9fc052551c182a9b0f2ea7b4a6aad531.tar.xz
wireguard-apple-41f9a64d9fc052551c182a9b0f2ea7b4a6aad531.zip
Config tweaking.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--WireGuardNetworkExtension/PacketTunnelProvider.swift35
1 files changed, 21 insertions, 14 deletions
diff --git a/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuardNetworkExtension/PacketTunnelProvider.swift
index 3443e98..ffb7c2c 100644
--- a/WireGuardNetworkExtension/PacketTunnelProvider.swift
+++ b/WireGuardNetworkExtension/PacketTunnelProvider.swift
@@ -38,26 +38,33 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
if wireGuardWrapper.turnOn(withInterfaceName: interfaceName, settingsString: settings) {
// Success
- //TODO obtain network config from WireGuard config or remote.
- // route all traffic to VPN
- let defaultRoute = NEIPv4Route.default()
-// defaultRoute.gatewayAddress = gateway
-
- let ipv4Settings = NEIPv4Settings(addresses: ["149.248.160.60"], subnetMasks: ["255.255.255.255"])
- ipv4Settings.includedRoutes = [defaultRoute]
- ipv4Settings.excludedRoutes = []
-
-// let dnsSettings = NEDNSSettings(servers: dnsServers)
+ //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.excludedRoutes = endpoints.split(separator: ",").compactMap { $0.split(separator: ":").first}.map {NEIPv4Route(destinationAddress: String($0), subnetMask: "255.255.255.255")}
+ //TODO IPv6 settings
let newSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "149.248.160.60")
newSettings.ipv4Settings = ipv4Settings
-// newSettings.dnsSettings = dnsSettings
-// newSettings.mtu = cfg.mtu
-
- setTunnelNetworkSettings(newSettings, completionHandler: completionHandler)
+ newSettings.tunnelOverheadBytes = 80
+ if let dns = config.providerConfiguration?["dns"] as? String {
+ var splitDnsEntries = dns.split(separator: ",").map {String($0)}
+ let dnsSettings = NEDNSSettings(servers: splitDnsEntries)
+ newSettings.dnsSettings = dnsSettings
+ }
+ if let mtu = mtu {
+ newSettings.mtu = mtu
+ }
+
+ setTunnelNetworkSettings(newSettings) { [weak self](error) in
+ completionHandler(error)
+ self?.wireGuardWrapper.configured = true
+ }
} else {
completionHandler(PacketTunnelProviderError.tunnelSetupFailed)
+ wireGuardWrapper.configured = false
}
}