diff options
-rw-r--r-- | api/current.txt | 3 | ||||
-rw-r--r-- | core/java/android/net/LinkAddress.java | 35 | ||||
-rw-r--r-- | core/java/android/net/RouteInfo.java | 18 | ||||
-rw-r--r-- | core/tests/coretests/src/android/net/LinkAddressTest.java | 12 | ||||
-rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/NetworkManagementService.java | 10 | ||||
-rw-r--r-- | services/core/java/com/android/server/net/IpConfigStore.java | 4 |
7 files changed, 45 insertions, 39 deletions
diff --git a/api/current.txt b/api/current.txt index 636e201..ad91b0a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16021,9 +16021,8 @@ package android.net { method public int describeContents(); method public java.net.InetAddress getAddress(); method public int getFlags(); - method public int getNetworkPrefixLength(); + method public int getPrefixLength(); method public int getScope(); - method public boolean isSameAddressAs(android.net.LinkAddress); method public void writeToParcel(android.os.Parcel, int); } diff --git a/core/java/android/net/LinkAddress.java b/core/java/android/net/LinkAddress.java index d07c0b61..5246078 100644 --- a/core/java/android/net/LinkAddress.java +++ b/core/java/android/net/LinkAddress.java @@ -39,18 +39,13 @@ import static android.system.OsConstants.RT_SCOPE_UNIVERSE; * <ul> * <li>An IP address and prefix length (e.g., {@code 2001:db8::1/64} or {@code 192.0.2.1/24}). * The address must be unicast, as multicast addresses cannot be assigned to interfaces. - * <li>Address flags: A bitmask of {@code IFA_F_*} values representing properties - * of the address. - * <li>Address scope: An integer defining the scope in which the address is unique (e.g., - * {@code RT_SCOPE_LINK} or {@code RT_SCOPE_SITE}). - * <ul> - *<p> - * When constructing a {@code LinkAddress}, the IP address and prefix are required. The flags and - * scope are optional. If they are not specified, the flags are set to zero, and the scope will be - * determined based on the IP address (e.g., link-local addresses will be created with a scope of - * {@code RT_SCOPE_LINK}, global addresses with {@code RT_SCOPE_UNIVERSE}, - * etc.) If they are specified, they are not checked for validity. - * + * <li>Address flags: A bitmask of {@code OsConstants.IFA_F_*} values representing properties + * of the address (e.g., {@code android.system.OsConstants.IFA_F_OPTIMISTIC}). + * <li>Address scope: One of the {@code OsConstants.IFA_F_*} values; defines the scope in which + * the address is unique (e.g., + * {@code android.system.OsConstants.RT_SCOPE_LINK} or + * {@code android.system.OsConstants.RT_SCOPE_UNIVERSE}). + * </ul> */ public class LinkAddress implements Parcelable { /** @@ -202,7 +197,9 @@ public class LinkAddress implements Parcelable { /** * Compares this {@code LinkAddress} instance against {@code obj}. Two addresses are equal if - * their address, prefix length, flags and scope are equal. + * their address, prefix length, flags and scope are equal. Thus, for example, two addresses + * that have the same address and prefix length are not equal if one of them is deprecated and + * the other is not. * * @param obj the object to be tested for equality. * @return {@code true} if both objects are equal, {@code false} otherwise. @@ -236,6 +233,7 @@ public class LinkAddress implements Parcelable { * @param other the {@code LinkAddress} to compare to. * @return {@code true} if both objects have the same address and prefix length, {@code false} * otherwise. + * @hide */ public boolean isSameAddressAs(LinkAddress other) { return address.equals(other.address) && prefixLength == other.prefixLength; @@ -251,11 +249,20 @@ public class LinkAddress implements Parcelable { /** * Returns the prefix length of this {@code LinkAddress}. */ - public int getNetworkPrefixLength() { + public int getPrefixLength() { return prefixLength; } /** + * Returns the prefix length of this {@code LinkAddress}. + * TODO: Delete all callers and remove in favour of getPrefixLength(). + * @hide + */ + public int getNetworkPrefixLength() { + return getPrefixLength(); + } + + /** * Returns the flags of this {@code LinkAddress}. */ public int getFlags() { diff --git a/core/java/android/net/RouteInfo.java b/core/java/android/net/RouteInfo.java index ad8e4f7..0f35096 100644 --- a/core/java/android/net/RouteInfo.java +++ b/core/java/android/net/RouteInfo.java @@ -105,7 +105,7 @@ public class RouteInfo implements Parcelable { mHasGateway = (!gateway.isAnyLocalAddress()); mDestination = new LinkAddress(NetworkUtils.getNetworkPart(destination.getAddress(), - destination.getNetworkPrefixLength()), destination.getNetworkPrefixLength()); + destination.getPrefixLength()), destination.getPrefixLength()); if ((destination.getAddress() instanceof Inet4Address && (gateway instanceof Inet4Address == false)) || (destination.getAddress() instanceof Inet6Address && @@ -176,18 +176,18 @@ public class RouteInfo implements Parcelable { private boolean isHost() { return (mDestination.getAddress() instanceof Inet4Address && - mDestination.getNetworkPrefixLength() == 32) || + mDestination.getPrefixLength() == 32) || (mDestination.getAddress() instanceof Inet6Address && - mDestination.getNetworkPrefixLength() == 128); + mDestination.getPrefixLength() == 128); } private boolean isDefault() { boolean val = false; if (mGateway != null) { if (mGateway instanceof Inet4Address) { - val = (mDestination == null || mDestination.getNetworkPrefixLength() == 0); + val = (mDestination == null || mDestination.getPrefixLength() == 0); } else { - val = (mDestination == null || mDestination.getNetworkPrefixLength() == 0); + val = (mDestination == null || mDestination.getPrefixLength() == 0); } } return val; @@ -263,7 +263,7 @@ public class RouteInfo implements Parcelable { // match the route destination and destination with prefix length InetAddress dstNet = NetworkUtils.getNetworkPart(destination, - mDestination.getNetworkPrefixLength()); + mDestination.getPrefixLength()); return mDestination.getAddress().equals(dstNet); } @@ -285,8 +285,8 @@ public class RouteInfo implements Parcelable { for (RouteInfo route : routes) { if (NetworkUtils.addressTypeMatches(route.mDestination.getAddress(), dest)) { if ((bestRoute != null) && - (bestRoute.mDestination.getNetworkPrefixLength() >= - route.mDestination.getNetworkPrefixLength())) { + (bestRoute.mDestination.getPrefixLength() >= + route.mDestination.getPrefixLength())) { continue; } if (route.matches(dest)) bestRoute = route; @@ -339,7 +339,7 @@ public class RouteInfo implements Parcelable { } else { dest.writeByte((byte) 1); dest.writeByteArray(mDestination.getAddress().getAddress()); - dest.writeInt(mDestination.getNetworkPrefixLength()); + dest.writeInt(mDestination.getPrefixLength()); } if (mGateway == null) { diff --git a/core/tests/coretests/src/android/net/LinkAddressTest.java b/core/tests/coretests/src/android/net/LinkAddressTest.java index bccf556..814ecdd 100644 --- a/core/tests/coretests/src/android/net/LinkAddressTest.java +++ b/core/tests/coretests/src/android/net/LinkAddressTest.java @@ -56,26 +56,26 @@ public class LinkAddressTest extends AndroidTestCase { // Valid addresses work as expected. address = new LinkAddress(V4_ADDRESS, 25); assertEquals(V4_ADDRESS, address.getAddress()); - assertEquals(25, address.getNetworkPrefixLength()); + assertEquals(25, address.getPrefixLength()); assertEquals(0, address.getFlags()); assertEquals(RT_SCOPE_UNIVERSE, address.getScope()); address = new LinkAddress(V6_ADDRESS, 127); assertEquals(V6_ADDRESS, address.getAddress()); - assertEquals(127, address.getNetworkPrefixLength()); + assertEquals(127, address.getPrefixLength()); assertEquals(0, address.getFlags()); assertEquals(RT_SCOPE_UNIVERSE, address.getScope()); // Nonsensical flags/scopes or combinations thereof are acceptable. address = new LinkAddress(V6 + "/64", IFA_F_DEPRECATED | IFA_F_PERMANENT, RT_SCOPE_LINK); assertEquals(V6_ADDRESS, address.getAddress()); - assertEquals(64, address.getNetworkPrefixLength()); + assertEquals(64, address.getPrefixLength()); assertEquals(IFA_F_DEPRECATED | IFA_F_PERMANENT, address.getFlags()); assertEquals(RT_SCOPE_LINK, address.getScope()); address = new LinkAddress(V4 + "/23", 123, 456); assertEquals(V4_ADDRESS, address.getAddress()); - assertEquals(23, address.getNetworkPrefixLength()); + assertEquals(23, address.getPrefixLength()); assertEquals(123, address.getFlags()); assertEquals(456, address.getScope()); @@ -94,10 +94,10 @@ public class LinkAddressTest extends AndroidTestCase { } assertEquals(NetworkUtils.numericToInetAddress("127.0.0.1"), ipv4Loopback.getAddress()); - assertEquals(8, ipv4Loopback.getNetworkPrefixLength()); + assertEquals(8, ipv4Loopback.getPrefixLength()); assertEquals(NetworkUtils.numericToInetAddress("::1"), ipv6Loopback.getAddress()); - assertEquals(128, ipv6Loopback.getNetworkPrefixLength()); + assertEquals(128, ipv6Loopback.getPrefixLength()); // Null addresses are rejected. try { diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index bd45761..de99aec 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -1669,7 +1669,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { continue; } - int prefix = destination.getNetworkPrefixLength(); + int prefix = destination.getPrefixLength(); InetAddress addrMasked = NetworkUtils.getNetworkPart(address, prefix); InetAddress destMasked = NetworkUtils.getNetworkPart(destination.getAddress(), prefix); diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index eefe8da..0b711ee 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -795,7 +795,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub final Command cmd = new Command("interface", "setcfg", iface, linkAddr.getAddress().getHostAddress(), - linkAddr.getNetworkPrefixLength()); + linkAddr.getPrefixLength()); for (String flag : cfg.getFlags()) { cmd.appendArg(flag); } @@ -884,7 +884,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub // create triplet: interface dest-ip-addr/prefixlength gateway-ip-addr final LinkAddress la = route.getDestination(); cmd.appendArg(route.getInterface()); - cmd.appendArg(la.getAddress().getHostAddress() + "/" + la.getNetworkPrefixLength()); + cmd.appendArg(la.getAddress().getHostAddress() + "/" + la.getPrefixLength()); if (route.hasGateway()) { cmd.appendArg(route.getGateway().getHostAddress()); } @@ -1699,7 +1699,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub try { LinkAddress dest = route.getDestination(); mConnector.execute("interface", "fwmark", "route", "add", iface, - dest.getAddress().getHostAddress(), dest.getNetworkPrefixLength()); + dest.getAddress().getHostAddress(), dest.getPrefixLength()); } catch (NativeDaemonConnectorException e) { throw e.rethrowAsParcelableException(); } @@ -1711,7 +1711,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub try { LinkAddress dest = route.getDestination(); mConnector.execute("interface", "fwmark", "route", "remove", iface, - dest.getAddress().getHostAddress(), dest.getNetworkPrefixLength()); + dest.getAddress().getHostAddress(), dest.getPrefixLength()); } catch (NativeDaemonConnectorException e) { throw e.rethrowAsParcelableException(); } @@ -2000,7 +2000,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub // create triplet: interface dest-ip-addr/prefixlength gateway-ip-addr final LinkAddress la = routeInfo.getDestination(); cmd.appendArg(routeInfo.getInterface()); - cmd.appendArg(la.getAddress().getHostAddress() + "/" + la.getNetworkPrefixLength()); + cmd.appendArg(la.getAddress().getHostAddress() + "/" + la.getPrefixLength()); if (routeInfo.hasGateway()) { cmd.appendArg(routeInfo.getGateway().getHostAddress()); } diff --git a/services/core/java/com/android/server/net/IpConfigStore.java b/services/core/java/com/android/server/net/IpConfigStore.java index aee7679..dc4dc2e 100644 --- a/services/core/java/com/android/server/net/IpConfigStore.java +++ b/services/core/java/com/android/server/net/IpConfigStore.java @@ -81,7 +81,7 @@ public class IpConfigStore { for (LinkAddress linkAddr : linkProperties.getLinkAddresses()) { out.writeUTF(LINK_ADDRESS_KEY); out.writeUTF(linkAddr.getAddress().getHostAddress()); - out.writeInt(linkAddr.getNetworkPrefixLength()); + out.writeInt(linkAddr.getPrefixLength()); } for (RouteInfo route : linkProperties.getRoutes()) { out.writeUTF(GATEWAY_KEY); @@ -89,7 +89,7 @@ public class IpConfigStore { if (dest != null) { out.writeInt(1); out.writeUTF(dest.getAddress().getHostAddress()); - out.writeInt(dest.getNetworkPrefixLength()); + out.writeInt(dest.getPrefixLength()); } else { out.writeInt(0); } |