aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuardNetworkExtension/PacketTunnelProvider.swift
diff options
context:
space:
mode:
authorJeroen Leenarts <jeroen.leenarts@gmail.com>2018-08-05 22:58:48 +0200
committerJeroen Leenarts <jeroen.leenarts@gmail.com>2018-08-05 22:58:48 +0200
commited18f66a6f20dd412561a0de5478a53d5d38e0e4 (patch)
tree1fb54a14321b693ce2b0e7759cf45ccbf62f6e4e /WireGuardNetworkExtension/PacketTunnelProvider.swift
parentFix binding. (diff)
downloadwireguard-apple-ed18f66a6f20dd412561a0de5478a53d5d38e0e4.tar.xz
wireguard-apple-ed18f66a6f20dd412561a0de5478a53d5d38e0e4.zip
Set a tunnel (routing) configuration. Still very rough.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'WireGuardNetworkExtension/PacketTunnelProvider.swift')
-rw-r--r--WireGuardNetworkExtension/PacketTunnelProvider.swift21
1 files changed, 20 insertions, 1 deletions
diff --git a/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuardNetworkExtension/PacketTunnelProvider.swift
index 4b282ac..c845a43 100644
--- a/WireGuardNetworkExtension/PacketTunnelProvider.swift
+++ b/WireGuardNetworkExtension/PacketTunnelProvider.swift
@@ -36,7 +36,26 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
//TODO tunnel settings
if wireGuardWrapper.turnOn(withInterfaceName: "test", settingsString: "") {
// Success
- completionHandler(nil)
+// completionHandler(nil)
+
+ //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)
+
+ let newSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "149.248.160.60")
+ newSettings.ipv4Settings = ipv4Settings
+// newSettings.dnsSettings = dnsSettings
+// newSettings.mtu = cfg.mtu
+
+ setTunnelNetworkSettings(newSettings, completionHandler: completionHandler)
+
} else {
completionHandler(PacketTunnelProviderError.tunnelSetupFailed)
}