diff --git a/api/system-current.txt b/api/system-current.txt index e7761b79a669f..69e27f05fe0c5 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3081,10 +3081,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 e0654fde6e5bf..ade6374675b37 100644 --- a/core/java/android/net/IpSecManager.java +++ b/core/java/android/net/IpSecManager.java @@ -684,14 +684,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(); } @@ -703,14 +704,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 a946e50585233..13210e8972629 100644 --- a/tests/net/java/android/net/IpSecManagerTest.java +++ b/tests/net/java/android/net/IpSecManagerTest.java @@ -260,12 +260,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());