]> git.ipfire.org Git - thirdparty/wireguard-apple.git/commitdiff
Use first peer's endpoint as the tunnel remote address.
authorJeroen Leenarts <jeroen.leenarts@gmail.com>
Fri, 17 Aug 2018 20:06:39 +0000 (22:06 +0200)
committerJeroen Leenarts <jeroen.leenarts@gmail.com>
Fri, 17 Aug 2018 20:07:01 +0000 (22:07 +0200)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
WireGuardNetworkExtension/PacketTunnelProvider.swift

index 52752fd905cbbb3436a7925cfb09406d459a414a..d402aa180314c8e91af8af897e249154609c8754 100644 (file)
@@ -37,9 +37,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
         let validatedEndpoints = endpoints.commaSeparatedToArray().compactMap { try? Endpoint(endpointString: String($0)) }.compactMap {$0}
         let validatedAddresses = addresses.compactMap { try? CIDRAddress(stringRepresentation: String($0)) }.compactMap { $0 }
 
-        if wireGuardWrapper.turnOn(withInterfaceName: interfaceName, settingsString: settings) {
-            //TODO: Hardcoded values for tunnelRemoteAddress
-            let newSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "149.248.160.60")
+        if let firstEndpoint = validatedEndpoints.first, wireGuardWrapper.turnOn(withInterfaceName: interfaceName, settingsString: settings) {
+            // We use the first endpoint for the ipAddress
+            let newSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: firstEndpoint.ipAddress)
             newSettings.tunnelOverheadBytes = 80
 
             // IPv4 settings
@@ -78,7 +78,6 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
             }
 
         } else {
-            self.wireGuardWrapper.packetFlow = self.packetFlow
             completionHandler(PacketTunnelProviderError.tunnelSetupFailed)
             wireGuardWrapper.configured = false
         }