diff --git a/api/system-current.txt b/api/system-current.txt index 962cbbf073861..656001c1fcc65 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3083,10 +3083,10 @@ package android.net { } public static final class IpSecManager.IpSecTunnelInterface implements java.lang.AutoCloseable { - method public void addAddress(android.net.LinkAddress) throws java.io.IOException; + method public void addAddress(java.net.InetAddress, int) throws java.io.IOException; method public void close(); method public java.lang.String getInterfaceName(); - method public void removeAddress(android.net.LinkAddress) throws java.io.IOException; + method public void removeAddress(java.net.InetAddress, int) throws java.io.IOException; } public final class IpSecTransform implements java.lang.AutoCloseable { diff --git a/core/java/android/net/IpSecManager.java b/core/java/android/net/IpSecManager.java index 0d04fe5a9172f..87323755a9c1e 100644 --- a/core/java/android/net/IpSecManager.java +++ b/core/java/android/net/IpSecManager.java @@ -690,14 +690,15 @@ public final class IpSecManager { * tunneled traffic. * * @param address the local address for traffic inside the tunnel + * @param prefixLen length of the InetAddress prefix * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) - public void addAddress(@NonNull LinkAddress address) throws IOException { + public void addAddress(@NonNull InetAddress address, int prefixLen) throws IOException { try { mService.addAddressToTunnelInterface( - mResourceId, address, mOpPackageName); + mResourceId, new LinkAddress(address, prefixLen), mOpPackageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -709,14 +710,15 @@ public final class IpSecManager { *
Remove an address which was previously added to the IpSecTunnelInterface * * @param address to be removed + * @param prefixLen length of the InetAddress prefix * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_IPSEC_TUNNELS) - public void removeAddress(@NonNull LinkAddress address) throws IOException { + public void removeAddress(@NonNull InetAddress address, int prefixLen) throws IOException { try { mService.removeAddressFromTunnelInterface( - mResourceId, address, mOpPackageName); + mResourceId, new LinkAddress(address, prefixLen), mOpPackageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/tests/net/java/android/net/IpSecManagerTest.java b/tests/net/java/android/net/IpSecManagerTest.java index 88d47ba0f2b9e..8160924c41fa9 100644 --- a/tests/net/java/android/net/IpSecManagerTest.java +++ b/tests/net/java/android/net/IpSecManagerTest.java @@ -288,12 +288,14 @@ public class IpSecManagerTest { IpSecManager.IpSecTunnelInterface tunnelIntf = createAndValidateVti(DUMMY_RESOURCE_ID, VTI_INTF_NAME); - tunnelIntf.addAddress(VTI_INNER_ADDRESS); + tunnelIntf.addAddress(VTI_INNER_ADDRESS.getAddress(), + VTI_INNER_ADDRESS.getPrefixLength()); verify(mMockIpSecService) .addAddressToTunnelInterface( eq(DUMMY_RESOURCE_ID), eq(VTI_INNER_ADDRESS), anyString()); - tunnelIntf.removeAddress(VTI_INNER_ADDRESS); + tunnelIntf.removeAddress(VTI_INNER_ADDRESS.getAddress(), + VTI_INNER_ADDRESS.getPrefixLength()); verify(mMockIpSecService) .addAddressToTunnelInterface( eq(DUMMY_RESOURCE_ID), eq(VTI_INNER_ADDRESS), anyString());