From: Jeroen Leenarts Date: Fri, 17 Aug 2018 20:06:39 +0000 (+0200) Subject: Use first peer's endpoint as the tunnel remote address. X-Git-Tag: 0.0.20181104-1~351 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2b591cc4428e4ccf246d8dfb0814c85231e6253;p=thirdparty%2Fwireguard-apple.git Use first peer's endpoint as the tunnel remote address. Signed-off-by: Jason A. Donenfeld --- diff --git a/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuardNetworkExtension/PacketTunnelProvider.swift index 52752fd..d402aa1 100644 --- a/WireGuardNetworkExtension/PacketTunnelProvider.swift +++ b/WireGuardNetworkExtension/PacketTunnelProvider.swift @@ -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 }