Pass server address directly to IKE.

This is a clean cherry-pick from aosp/1237528

This change updates the buildIkeSessionParams() method to use the new
IKE API that allows the VPN to pass the server address, and let IKE do
the DNS resolution.

Bug: 149356682
Test: FrameworksNetTests passing
Change-Id: Ic1077c6eb1f49bca9331e49555b3787cee02788c
This commit is contained in:
Benedict Wong
2020-02-17 17:46:23 -08:00
committed by evitayan
parent 818dca1aad
commit fe975fea5d
2 changed files with 4 additions and 7 deletions

View File

@@ -2357,10 +2357,11 @@ public class Vpn {
// TODO: Remove the need for adding two unused addresses with
// IPsec tunnels.
final InetAddress address = InetAddress.getLocalHost();
mTunnelIface =
mIpSecManager.createIpSecTunnelInterface(
ikeSessionParams.getServerAddress() /* unused */,
ikeSessionParams.getServerAddress() /* unused */,
address /* unused */,
address /* unused */,
network);
mNetd.setInterfaceUp(mTunnelIface.getInterfaceName());

View File

@@ -85,16 +85,12 @@ import java.util.List;
public class VpnIkev2Utils {
static IkeSessionParams buildIkeSessionParams(
@NonNull Context context, @NonNull Ikev2VpnProfile profile, @NonNull Network network) {
// TODO(b/149356682): Update this based on new IKE API. Only numeric addresses supported
// until then. All others throw IAE (caught by caller).
final InetAddress serverAddr = InetAddresses.parseNumericAddress(profile.getServerAddr());
final IkeIdentification localId = parseIkeIdentification(profile.getUserIdentity());
final IkeIdentification remoteId = parseIkeIdentification(profile.getServerAddr());
// TODO(b/149356682): Update this based on new IKE API.
final IkeSessionParams.Builder ikeOptionsBuilder =
new IkeSessionParams.Builder(context)
.setServerAddress(serverAddr)
.setServerHostname(profile.getServerAddr())
.setNetwork(network)
.setLocalIdentification(localId)
.setRemoteIdentification(remoteId);