summaryrefslogtreecommitdiffstats
path: root/services/tests
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-09-17 07:55:29 +0900
committerLorenzo Colitti <lorenzo@google.com>2015-10-08 16:28:02 +0900
commit025f4a5aae1660eda6406703771995010d9de990 (patch)
tree16185af8404973d398bd6184e0a1da01be400bb5 /services/tests
parentb19238c48814c5a1438b1238794e121876ae89ab (diff)
downloadframeworks_base-025f4a5aae1660eda6406703771995010d9de990.zip
frameworks_base-025f4a5aae1660eda6406703771995010d9de990.tar.gz
frameworks_base-025f4a5aae1660eda6406703771995010d9de990.tar.bz2
Support DHCP replies with multiple default gateways.
Just use the first one for compatibility with the legacy client. Bug: 23975855 Change-Id: Id6a0b0de32e8947c12c02eb9a3be417e2f82c99a
Diffstat (limited to 'services/tests')
-rw-r--r--services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
index 0f1cb88..7e60bf1 100644
--- a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
+++ b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java
@@ -550,4 +550,38 @@ public class DhcpPacketTest extends TestCase {
"209.129.128.3,209.129.148.3,209.129.128.6",
"wvm.edu", "10.1.105.252", null, 86400, false, dhcpResults);
}
+
+ @SmallTest
+ public void testMultipleRouters() throws Exception {
+ final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode((
+ // Ethernet header.
+ "fc3d93000000" + "081735000000" + "0800" +
+ // IP header.
+ "45000148c2370000ff117ac2c0a8bd02ffffffff" +
+ // UDP header. TODO: fix invalid checksum (due to MAC address obfuscation).
+ "0043004401343beb" +
+ // BOOTP header.
+ "0201060027f518e20000800000000000c0a8bd310000000000000000" +
+ // MAC address.
+ "fc3d9300000000000000000000000000" +
+ // Server name.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // File.
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ "0000000000000000000000000000000000000000000000000000000000000000" +
+ // Options.
+ "638253633501023604c0abbd023304000070803a04000038403b04000062700104ffffff00" +
+ "0308c0a8bd01ffffff0006080808080808080404ff000000000000"
+ ).toCharArray(), false));
+
+ DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2);
+ assertTrue(offerPacket instanceof DhcpOfferPacket);
+ assertEquals("FC3D93000000", HexDump.toHexString(offerPacket.getClientMac()));
+ DhcpResults dhcpResults = offerPacket.toDhcpResults();
+ assertDhcpResults("192.168.189.49/24", "192.168.189.1", "8.8.8.8,8.8.4.4",
+ null, "192.171.189.2", null, 28800, false, dhcpResults);
+ }
}