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

Commit c8a0f49f authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

DHCP: Minor cleanups to the packet code.

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
parent c95a87f3
Loading
Loading
Loading
Loading
+7 −17
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.net.dhcp;

import java.net.InetAddress;
import java.net.Inet4Address;
import java.nio.ByteBuffer;

@@ -28,12 +27,11 @@ class DhcpAckPacket extends DhcpPacket {
    /**
     * The address of the server which sent this packet.
     */
    private final InetAddress mSrcIp;
    private final Inet4Address mSrcIp;

    DhcpAckPacket(int transId, boolean broadcast, InetAddress serverAddress,
                  InetAddress clientIp, byte[] clientMac) {
        super(transId, Inet4Address.ANY, clientIp, serverAddress,
            Inet4Address.ANY, clientMac, broadcast);
    DhcpAckPacket(int transId, boolean broadcast, Inet4Address serverAddress,
                  Inet4Address clientIp, byte[] clientMac) {
        super(transId, INADDR_ANY, clientIp, serverAddress, INADDR_ANY, clientMac, broadcast);
        mBroadcast = broadcast;
        mSrcIp = serverAddress;
    }
@@ -42,7 +40,7 @@ class DhcpAckPacket extends DhcpPacket {
        String s = super.toString();
        String dnsServers = " DNS servers: ";

        for (InetAddress dnsServer: mDnsServers) {
        for (Inet4Address dnsServer: mDnsServers) {
            dnsServers += dnsServer.toString() + " ";
        }

@@ -57,8 +55,8 @@ class DhcpAckPacket extends DhcpPacket {
     */
    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
        InetAddress destIp = mBroadcast ? Inet4Address.ALL : mYourIp;
        InetAddress srcIp = mBroadcast ? Inet4Address.ANY : mSrcIp;
        Inet4Address destIp = mBroadcast ? INADDR_BROADCAST : mYourIp;
        Inet4Address srcIp = mBroadcast ? INADDR_ANY : mSrcIp;

        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
            DHCP_BOOTREPLY, mBroadcast);
@@ -98,12 +96,4 @@ class DhcpAckPacket extends DhcpPacket {
            return v.intValue();
        }
    }

    /**
     * Notifies the specified state machine of the ACK packet parameters.
     */
    public void doNextOp(DhcpStateMachine machine) {
        machine.onAckReceived(mYourIp, mSubnetMask, mGateway, mDnsServers,
            mServerIdentifier, getInt(mLeaseTime));
    }
}
+3 −10
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.net.dhcp;

import java.net.InetAddress;
import java.net.Inet4Address;
import java.nio.ByteBuffer;

/**
@@ -26,8 +26,8 @@ class DhcpDeclinePacket extends DhcpPacket {
    /**
     * Generates a DECLINE packet with the specified parameters.
     */
    DhcpDeclinePacket(int transId, InetAddress clientIp, InetAddress yourIp,
                      InetAddress nextIp, InetAddress relayIp,
    DhcpDeclinePacket(int transId, Inet4Address clientIp, Inet4Address yourIp,
                      Inet4Address nextIp, Inet4Address relayIp,
                      byte[] clientMac) {
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
    }
@@ -55,11 +55,4 @@ class DhcpDeclinePacket extends DhcpPacket {
    void finishPacket(ByteBuffer buffer) {
        // None needed
    }

    /**
     * Informs the state machine of the arrival of a DECLINE packet.
     */
    public void doNextOp(DhcpStateMachine machine) {
        machine.onDeclineReceived(mClientMac, mRequestedIp);
    }
}
+3 −16
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.net.dhcp;

import java.net.InetAddress;
import java.net.Inet4Address;
import java.nio.ByteBuffer;

@@ -28,8 +27,7 @@ class DhcpDiscoverPacket extends DhcpPacket {
     * Generates a DISCOVER packet with the specified parameters.
     */
    DhcpDiscoverPacket(int transId, byte[] clientMac, boolean broadcast) {
        super(transId, Inet4Address.ANY, Inet4Address.ANY, Inet4Address.ANY,
            Inet4Address.ANY, clientMac, broadcast);
        super(transId, INADDR_ANY, INADDR_ANY, INADDR_ANY, INADDR_ANY, clientMac, broadcast);
    }

    public String toString() {
@@ -43,10 +41,8 @@ class DhcpDiscoverPacket extends DhcpPacket {
     */
    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
        InetAddress destIp = Inet4Address.ALL;

        fillInPacket(encap, Inet4Address.ALL, Inet4Address.ANY, destUdp, srcUdp,
            result, DHCP_BOOTREQUEST, true);
        fillInPacket(encap, INADDR_BROADCAST, INADDR_ANY, destUdp,
                srcUdp, result, DHCP_BOOTREQUEST, true);
        result.flip();
        return result;
    }
@@ -59,13 +55,4 @@ class DhcpDiscoverPacket extends DhcpPacket {
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlvEnd(buffer);
    }

    /**
     * Informs the state machine of the arrival of a DISCOVER packet.
     */
    public void doNextOp(DhcpStateMachine machine) {
        // currently omitted: host name
        machine.onDiscoverReceived(mBroadcast, mTransId, mClientMac,
            mRequestedParams);
    }
}
+3 −14
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.net.dhcp;

import java.net.InetAddress;
import java.net.Inet4Address;
import java.nio.ByteBuffer;

/**
@@ -26,8 +26,8 @@ class DhcpInformPacket extends DhcpPacket {
    /**
     * Generates an INFORM packet with the specified parameters.
     */
    DhcpInformPacket(int transId, InetAddress clientIp, InetAddress yourIp,
                     InetAddress nextIp, InetAddress relayIp,
    DhcpInformPacket(int transId, Inet4Address clientIp, Inet4Address yourIp,
                     Inet4Address nextIp, Inet4Address relayIp,
                     byte[] clientMac) {
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
    }
@@ -62,15 +62,4 @@ class DhcpInformPacket extends DhcpPacket {
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlvEnd(buffer);
    }

    /**
     * Informs the state machine of the arrival of an INFORM packet.  Not
     * used currently.
     */
    public void doNextOp(DhcpStateMachine machine) {
        InetAddress clientRequest =
            mRequestedIp == null ? mClientIp : mRequestedIp;
        machine.onInformReceived(mTransId, mClientMac, clientRequest,
            mRequestedParams);
    }
}
+5 −13
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.net.dhcp;

import java.net.InetAddress;
import java.net.Inet4Address;
import java.nio.ByteBuffer;

@@ -27,10 +26,10 @@ class DhcpNakPacket extends DhcpPacket {
    /**
     * Generates a NAK packet with the specified parameters.
     */
    DhcpNakPacket(int transId, InetAddress clientIp, InetAddress yourIp,
                  InetAddress nextIp, InetAddress relayIp,
    DhcpNakPacket(int transId, Inet4Address clientIp, Inet4Address yourIp,
                  Inet4Address nextIp, Inet4Address relayIp,
                  byte[] clientMac) {
        super(transId, Inet4Address.ANY, Inet4Address.ANY, nextIp, relayIp,
        super(transId, INADDR_ANY, INADDR_ANY, nextIp, relayIp,
            clientMac, false);
    }

@@ -44,8 +43,8 @@ class DhcpNakPacket extends DhcpPacket {
     */
    public ByteBuffer buildPacket(int encap, short destUdp, short srcUdp) {
        ByteBuffer result = ByteBuffer.allocate(MAX_LENGTH);
        InetAddress destIp = mClientIp;
        InetAddress srcIp = mYourIp;
        Inet4Address destIp = mClientIp;
        Inet4Address srcIp = mYourIp;

        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
            DHCP_BOOTREPLY, mBroadcast);
@@ -62,11 +61,4 @@ class DhcpNakPacket extends DhcpPacket {
        addTlv(buffer, DHCP_MESSAGE, mMessage);
        addTlvEnd(buffer);
    }

    /**
     * Notifies the specified state machine of the newly-arrived NAK packet.
     */
    public void doNextOp(DhcpStateMachine machine) {
        machine.onNakReceived();
    }
}
Loading