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 Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package android.net.dhcp;
package android.net.dhcp;


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


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


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


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


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


        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
        fillInPacket(encap, destIp, srcIp, destUdp, srcUdp, result,
            DHCP_BOOTREPLY, mBroadcast);
            DHCP_BOOTREPLY, mBroadcast);
@@ -98,12 +96,4 @@ class DhcpAckPacket extends DhcpPacket {
            return v.intValue();
            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 Original line Diff line number Diff line
@@ -16,7 +16,7 @@


package android.net.dhcp;
package android.net.dhcp;


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


/**
/**
@@ -26,8 +26,8 @@ class DhcpDeclinePacket extends DhcpPacket {
    /**
    /**
     * Generates a DECLINE packet with the specified parameters.
     * Generates a DECLINE packet with the specified parameters.
     */
     */
    DhcpDeclinePacket(int transId, InetAddress clientIp, InetAddress yourIp,
    DhcpDeclinePacket(int transId, Inet4Address clientIp, Inet4Address yourIp,
                      InetAddress nextIp, InetAddress relayIp,
                      Inet4Address nextIp, Inet4Address relayIp,
                      byte[] clientMac) {
                      byte[] clientMac) {
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
    }
    }
@@ -55,11 +55,4 @@ class DhcpDeclinePacket extends DhcpPacket {
    void finishPacket(ByteBuffer buffer) {
    void finishPacket(ByteBuffer buffer) {
        // None needed
        // 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 Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package android.net.dhcp;
package android.net.dhcp;


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


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


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

                srcUdp, result, DHCP_BOOTREQUEST, true);
        fillInPacket(encap, Inet4Address.ALL, Inet4Address.ANY, destUdp, srcUdp,
            result, DHCP_BOOTREQUEST, true);
        result.flip();
        result.flip();
        return result;
        return result;
    }
    }
@@ -59,13 +55,4 @@ class DhcpDiscoverPacket extends DhcpPacket {
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlvEnd(buffer);
        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 Original line Diff line number Diff line
@@ -16,7 +16,7 @@


package android.net.dhcp;
package android.net.dhcp;


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


/**
/**
@@ -26,8 +26,8 @@ class DhcpInformPacket extends DhcpPacket {
    /**
    /**
     * Generates an INFORM packet with the specified parameters.
     * Generates an INFORM packet with the specified parameters.
     */
     */
    DhcpInformPacket(int transId, InetAddress clientIp, InetAddress yourIp,
    DhcpInformPacket(int transId, Inet4Address clientIp, Inet4Address yourIp,
                     InetAddress nextIp, InetAddress relayIp,
                     Inet4Address nextIp, Inet4Address relayIp,
                     byte[] clientMac) {
                     byte[] clientMac) {
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
        super(transId, clientIp, yourIp, nextIp, relayIp, clientMac, false);
    }
    }
@@ -62,15 +62,4 @@ class DhcpInformPacket extends DhcpPacket {
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlv(buffer, DHCP_PARAMETER_LIST, mRequestedParams);
        addTlvEnd(buffer);
        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 Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package android.net.dhcp;
package android.net.dhcp;


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


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


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


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

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