Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6cf2d35d authored by Kris Giesing's avatar Kris Giesing Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Revert "Add android.net.IpPrefix#contains()"" into lmp-mr1-ub-docs

parents 663cdc5c e863712a
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -16996,7 +16996,6 @@ package android.net {
  }
  public final class IpPrefix implements android.os.Parcelable {
    method public boolean contains(java.net.InetAddress);
    method public int describeContents();
    method public java.net.InetAddress getAddress();
    method public int getPrefixLength();
+0 −1
Original line number Diff line number Diff line
@@ -18259,7 +18259,6 @@ package android.net {
  }
  public final class IpPrefix implements android.os.Parcelable {
    method public boolean contains(java.net.InetAddress);
    method public int describeContents();
    method public java.net.InetAddress getAddress();
    method public int getPrefixLength();
+0 −15
Original line number Diff line number Diff line
@@ -169,21 +169,6 @@ public final class IpPrefix implements Parcelable {
        return prefixLength;
    }

    /**
     * Determines whether the prefix contains the specified address.
     *
     * @param address An {@link InetAddress} to test.
     * @return {@code true} if the prefix covers the given address.
     */
    public boolean contains(InetAddress address) {
        byte[] addrBytes = (address == null) ? null : address.getAddress();
        if (addrBytes == null || addrBytes.length != this.address.length) {
            return false;
        }
        NetworkUtils.maskRawAddress(addrBytes, prefixLength);
        return Arrays.equals(this.address, addrBytes);
    }

    /**
     * Returns a string representation of this {@code IpPrefix}.
     *
+7 −1
Original line number Diff line number Diff line
@@ -367,7 +367,13 @@ public final class RouteInfo implements Parcelable {
     * @return {@code true} if the destination and prefix length cover the given address.
     */
    public boolean matches(InetAddress destination) {
        return mDestination.contains(destination);
        if (destination == null) return false;

        // match the route destination and destination with prefix length
        InetAddress dstNet = NetworkUtils.getNetworkPart(destination,
                mDestination.getPrefixLength());

        return mDestination.getAddress().equals(dstNet);
    }

    /**
+0 −32
Original line number Diff line number Diff line
@@ -29,10 +29,6 @@ import junit.framework.TestCase;

public class IpPrefixTest extends TestCase {

    private static InetAddress Address(String addr) {
        return InetAddress.parseNumericAddress(addr);
    }

    // Explicitly cast everything to byte because "error: possible loss of precision".
    private static final byte[] IPV4_BYTES = { (byte) 192, (byte) 0, (byte) 2, (byte) 4};
    private static final byte[] IPV6_BYTES = {
@@ -212,34 +208,6 @@ public class IpPrefixTest extends TestCase {
        assertAreNotEqual(p1, p2);
    }

    @SmallTest
    public void testContains() {
        IpPrefix p = new IpPrefix("2001:db8:f00::ace:d00d/127");
        assertTrue(p.contains(Address("2001:db8:f00::ace:d00c")));
        assertTrue(p.contains(Address("2001:db8:f00::ace:d00d")));
        assertFalse(p.contains(Address("2001:db8:f00::ace:d00e")));
        assertFalse(p.contains(Address("2001:db8:f00::bad:d00d")));
        assertFalse(p.contains(Address("2001:4868:4860::8888")));
        assertFalse(p.contains(null));
        assertFalse(p.contains(Address("8.8.8.8")));

        p = new IpPrefix("192.0.2.0/23");
        assertTrue(p.contains(Address("192.0.2.43")));
        assertTrue(p.contains(Address("192.0.3.21")));
        assertFalse(p.contains(Address("192.0.0.21")));
        assertFalse(p.contains(Address("8.8.8.8")));
        assertFalse(p.contains(Address("2001:4868:4860::8888")));

        IpPrefix ipv6Default = new IpPrefix("::/0");
        assertTrue(ipv6Default.contains(Address("2001:db8::f00")));
        assertFalse(ipv6Default.contains(Address("192.0.2.1")));

        IpPrefix ipv4Default = new IpPrefix("0.0.0.0/0");
        assertTrue(ipv4Default.contains(Address("255.255.255.255")));
        assertTrue(ipv4Default.contains(Address("192.0.2.1")));
        assertFalse(ipv4Default.contains(Address("2001:db8::f00")));
    }

    @SmallTest
    public void testHashCode() {
        IpPrefix p;
Loading