Search in sources :

Example 11 with IpPrefix

use of android.net.IpPrefix in project android_frameworks_base by DirtyUnicorns.

the class IpPrefixTest method passThroughParcel.

public IpPrefix passThroughParcel(IpPrefix p) {
    Parcel parcel = Parcel.obtain();
    IpPrefix p2 = null;
    try {
        p.writeToParcel(parcel, 0);
        parcel.setDataPosition(0);
        p2 = IpPrefix.CREATOR.createFromParcel(parcel);
    } finally {
        parcel.recycle();
    }
    assertNotNull(p2);
    return p2;
}
Also used : IpPrefix(android.net.IpPrefix) Parcel(android.os.Parcel)

Example 12 with IpPrefix

use of android.net.IpPrefix in project android_frameworks_base by DirtyUnicorns.

the class IpPrefixTest method testMappedAddressesAreBroken.

@SmallTest
public void testMappedAddressesAreBroken() {
    // 192.0.2.0/24 != ::ffff:c000:0204/120, but because we use InetAddress,
    // we are unable to comprehend that.
    byte[] ipv6bytes = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0xff, (byte) 0xff, (byte) 192, (byte) 0, (byte) 2, (byte) 0 };
    IpPrefix p = new IpPrefix(ipv6bytes, 120);
    // Fine.
    assertEquals(16, p.getRawAddress().length);
    // Fine.
    assertArrayEquals(ipv6bytes, p.getRawAddress());
    // Broken.
    assertEquals("192.0.2.0/120", p.toString());
    assertEquals(InetAddress.parseNumericAddress("192.0.2.0"), p.getAddress());
}
Also used : IpPrefix(android.net.IpPrefix) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 13 with IpPrefix

use of android.net.IpPrefix in project android_frameworks_base by DirtyUnicorns.

the class RouteInfoTest method testMatches.

public void testMatches() {
    class PatchedRouteInfo {

        private final RouteInfo mRouteInfo;

        public PatchedRouteInfo(IpPrefix destination, InetAddress gateway, String iface) {
            mRouteInfo = new RouteInfo(destination, gateway, iface);
        }

        public boolean matches(InetAddress destination) {
            return mRouteInfo.matches(destination);
        }
    }
    PatchedRouteInfo r;
    r = new PatchedRouteInfo(Prefix("2001:db8:f00::ace:d00d/127"), null, "rmnet0");
    assertTrue(r.matches(Address("2001:db8:f00::ace:d00c")));
    assertTrue(r.matches(Address("2001:db8:f00::ace:d00d")));
    assertFalse(r.matches(Address("2001:db8:f00::ace:d00e")));
    assertFalse(r.matches(Address("2001:db8:f00::bad:d00d")));
    assertFalse(r.matches(Address("2001:4868:4860::8888")));
    assertFalse(r.matches(Address("8.8.8.8")));
    r = new PatchedRouteInfo(Prefix("192.0.2.0/23"), null, "wlan0");
    assertTrue(r.matches(Address("192.0.2.43")));
    assertTrue(r.matches(Address("192.0.3.21")));
    assertFalse(r.matches(Address("192.0.0.21")));
    assertFalse(r.matches(Address("8.8.8.8")));
    PatchedRouteInfo ipv6Default = new PatchedRouteInfo(Prefix("::/0"), null, "rmnet0");
    assertTrue(ipv6Default.matches(Address("2001:db8::f00")));
    assertFalse(ipv6Default.matches(Address("192.0.2.1")));
    PatchedRouteInfo ipv4Default = new PatchedRouteInfo(Prefix("0.0.0.0/0"), null, "rmnet0");
    assertTrue(ipv4Default.matches(Address("255.255.255.255")));
    assertTrue(ipv4Default.matches(Address("192.0.2.1")));
    assertFalse(ipv4Default.matches(Address("2001:db8::f00")));
}
Also used : IpPrefix(android.net.IpPrefix) RouteInfo(android.net.RouteInfo) InetAddress(java.net.InetAddress)

Example 14 with IpPrefix

use of android.net.IpPrefix in project android_frameworks_base by DirtyUnicorns.

the class RouteInfoTest method testConstructor.

@SmallTest
public void testConstructor() {
    RouteInfo r;
    // Invalid input.
    try {
        r = new RouteInfo((IpPrefix) null, null, "rmnet0");
        fail("Expected RuntimeException:  destination and gateway null");
    } catch (RuntimeException e) {
    }
    // Null destination is default route.
    r = new RouteInfo((IpPrefix) null, Address("2001:db8::1"), null);
    assertEquals(Prefix("::/0"), r.getDestination());
    assertEquals(Address("2001:db8::1"), r.getGateway());
    assertNull(r.getInterface());
    r = new RouteInfo((IpPrefix) null, Address("192.0.2.1"), "wlan0");
    assertEquals(Prefix("0.0.0.0/0"), r.getDestination());
    assertEquals(Address("192.0.2.1"), r.getGateway());
    assertEquals("wlan0", r.getInterface());
    // Null gateway sets gateway to unspecified address (why?).
    r = new RouteInfo(Prefix("2001:db8:beef:cafe::/48"), null, "lo");
    assertEquals(Prefix("2001:db8:beef::/48"), r.getDestination());
    assertEquals(Address("::"), r.getGateway());
    assertEquals("lo", r.getInterface());
    r = new RouteInfo(Prefix("192.0.2.5/24"), null);
    assertEquals(Prefix("192.0.2.0/24"), r.getDestination());
    assertEquals(Address("0.0.0.0"), r.getGateway());
    assertNull(r.getInterface());
}
Also used : IpPrefix(android.net.IpPrefix) RouteInfo(android.net.RouteInfo) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Example 15 with IpPrefix

use of android.net.IpPrefix in project android_frameworks_base by DirtyUnicorns.

the class StaticIpConfigurationTest method testToLinkProperties.

@SmallTest
public void testToLinkProperties() {
    LinkProperties expected = new LinkProperties();
    expected.setInterfaceName(IFACE);
    StaticIpConfiguration s = new StaticIpConfiguration();
    assertEquals(expected, s.toLinkProperties(IFACE));
    final RouteInfo connectedRoute = new RouteInfo(new IpPrefix(ADDRSTR), null, IFACE);
    s.ipAddress = ADDR;
    expected.addLinkAddress(ADDR);
    expected.addRoute(connectedRoute);
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.gateway = GATEWAY;
    RouteInfo defaultRoute = new RouteInfo(new IpPrefix("0.0.0.0/0"), GATEWAY, IFACE);
    expected.addRoute(defaultRoute);
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.gateway = OFFLINKGATEWAY;
    expected.removeRoute(defaultRoute);
    defaultRoute = new RouteInfo(new IpPrefix("0.0.0.0/0"), OFFLINKGATEWAY, IFACE);
    expected.addRoute(defaultRoute);
    RouteInfo gatewayRoute = new RouteInfo(new IpPrefix("192.0.2.129/32"), null, IFACE);
    expected.addRoute(gatewayRoute);
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.dnsServers.add(DNS1);
    expected.addDnsServer(DNS1);
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.dnsServers.add(DNS2);
    s.dnsServers.add(DNS3);
    expected.addDnsServer(DNS2);
    expected.addDnsServer(DNS3);
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.domains = "google.com";
    expected.setDomains("google.com");
    assertEquals(expected, s.toLinkProperties(IFACE));
    s.gateway = null;
    expected.removeRoute(defaultRoute);
    expected.removeRoute(gatewayRoute);
    assertEquals(expected, s.toLinkProperties(IFACE));
    // Without knowing the IP address, we don't have a directly-connected route, so we can't
    // tell if the gateway is off-link or not and we don't add a host route. This isn't a real
    // configuration, but we should at least not crash.
    s.gateway = OFFLINKGATEWAY;
    s.ipAddress = null;
    expected.removeLinkAddress(ADDR);
    expected.removeRoute(connectedRoute);
    expected.addRoute(defaultRoute);
    assertEquals(expected, s.toLinkProperties(IFACE));
}
Also used : IpPrefix(android.net.IpPrefix) StaticIpConfiguration(android.net.StaticIpConfiguration) RouteInfo(android.net.RouteInfo) SmallTest(android.test.suitebuilder.annotation.SmallTest)

Aggregations

IpPrefix (android.net.IpPrefix)89 SmallTest (android.test.suitebuilder.annotation.SmallTest)40 RouteInfo (android.net.RouteInfo)35 InetAddress (java.net.InetAddress)25 LinkAddress (android.net.LinkAddress)20 Inet6Address (java.net.Inet6Address)19 LinkProperties (android.net.LinkProperties)15 StaticIpConfiguration (android.net.StaticIpConfiguration)5 RaParams (android.net.ip.RouterAdvertisementDaemon.RaParams)5 Parcel (android.os.Parcel)5 Suppress (android.test.suitebuilder.annotation.Suppress)5 Inet4Address (java.net.Inet4Address)5 Random (java.util.Random)5 BufferOverflowException (java.nio.BufferOverflowException)4 ByteBuffer (java.nio.ByteBuffer)4