* changes:
DHCP: Don't write options longer than 255 bytes.
DHCP: parsing robustness fixes.
DHCP: Add a hidden setting to use the legacy DHCP client.
DHCP: Add a Java DHCP client.
Add a protectFromVpn method that takes a FileDescriptor
DHCP: protocol changes.
DHCP: glue code.
DHCP: Ethernet/IP packet header changes.
DHCP: Minor cleanups to the packet code.
DHCP: Move the packet code to frameworks/base/services.
DHCP: Add a native method for making a DHCP socket.
DHCP: Add a superclass for DhcpStateMachine.
Add two utility methods for IPv4 netmasks.
1. Check the length of the fixed-length portions of the packet.
2. Catch BufferUnderflowException while parsing options.
Change-Id: If907f49f02a04a4a3360f46a3192e94ab099af0e
The behaviour of the client is intended to mirror the behaviour
of the current DhcpStateMachine + dhcpcd combination, except it
does not store leases across network changes.
Bug: 19704592
Change-Id: I110b58003da2d8293059d48a0181e16f7f7f145c
1. Define and add parsing code for MTU, max message size, T1, T2.
2. Add common TLVs (message size, hostname, vendor ID) to all
packets sent by the client.
3. Don't include requested IP and server ID in renew messages,
since the RFC says MUST NOT.
4. Don't hardcode the broadcast flag to true in DISCOVER packets,
use what the caller passed in.
5. Make some methods static.
Bug: 19704592
Change-Id: I42a0997e468b12e19cad9b403b98fe266e6cea73
1. Add a method to make a DhcpResults object from a DHCP packet.
2. Add a method to fetch the client MAC from the packet. This is
needed to check that the message is for us (lots of DHCP
messages are broadcast).
3. Add a length argument to the method that parses DHCP packets,
so the caller can use the same MTU-sized array all the time
instead of having to pass in a new array for every packet.
Bug: 19704592
Change-Id: I58223f5ec90fb5c762bc2934649e02f9122018b2
1. Support L2_ENCAP when building packets as well as when parsing.
2. Skip IP options when parsing DHCP packets.
Bug: 19704592
Change-Id: Ic27a45790ed1cf7cf5b82d63b6c0b64c909a570f
1. Delete the DhcpStateMachine, since we don't plan to use it.
2. Make all InetAddresses Inet4Addresses, since that's what they
are. In order to do this, define INADDR_ANY and
INADDR_BROADCAST, constants, since Inet4Address.{ANY,ALL} are
not Inet4Addresses but InetAddresses.
Bug: 19704592
Change-Id: I5a0499be889076992a60aaad0bd8be5ea66bd560
There's no need for it to be in frameworks/base/core, since it
will only be used by services.
Bug: 19704592
Change-Id: I2f5277eca848b7000ca46db575e8602eacb5c8bd
This can be used to switch between different DHCP client
implementations. The caller can declare objects of type
BaseDhcpStateMachine, and call its methods, without needing to
care what implementation is in use.
Bug: 19704592
Change-Id: Icefad9b0d0f83b349681388b1fa16b5e2e37c042
1. Add a validating method to convert a netmask to a prefix length.
2. Add a function to get the implicit netmask of an IPv4 address.
3. Add a unit test.
Bug: 19704592
Change-Id: Icb9f58d3903ea01df9e3720383c9bd5db6dd8f26
This is a temporary fix to prevent deadlocking in the
system. Need to come up with a better solution for
accessing WiFi and other subsystems from BatteryStats.
b/19729960
Change-Id: I464e7490c9780249d2a3eef05ce084a7d84372c0
Allows playback/TV device to use the API to turn off
TV/other device that accepts the command.
Bug: 19802768
Change-Id: I6440626c08efb1473bea5ab577e571d0bb92d4a1