public final class DHCPResponseFactory extends Object
This simplifies DHCP Server development as basic behaviour is already usable as-is.
| Modifier and Type | Method and Description |
|---|---|
static InetSocketAddress |
getDefaultSocketAddress(DHCPPacket request,
byte responseType)
Calculates the addres/port to which the response must be sent, according to
rfc 2131, section 4.1.
|
static DHCPPacket |
makeDHCPAck(DHCPPacket request,
InetAddress offeredAddress,
int leaseTime,
InetAddress serverIdentifier,
String message,
DHCPOption[] options)
Create a populated DHCPACK response.
|
static DHCPPacket |
makeDHCPNak(DHCPPacket request,
InetAddress serverIdentifier,
String message)
Create a populated DHCPNAK response.
|
static DHCPPacket |
makeDHCPOffer(DHCPPacket request,
InetAddress offeredAddress,
int leaseTime,
InetAddress serverIdentifier,
String message,
DHCPOption[] options)
Create a populated DHCPOFFER response.
|
public static final DHCPPacket makeDHCPOffer(DHCPPacket request, InetAddress offeredAddress, int leaseTime, InetAddress serverIdentifier, String message, DHCPOption[] options)
Reponse is populated according to the DHCP request received (must be DHCPDISCOVER), the proposed client address and a set of pre-set options.
Note: getDefaultSocketAddress is called internally to populate
address and port number to which response should be sent.
request - requestofferedAddress - offered addressleaseTime - lease timeserverIdentifier - Server identfiermessage - messageoptions - optionspublic static final DHCPPacket makeDHCPAck(DHCPPacket request, InetAddress offeredAddress, int leaseTime, InetAddress serverIdentifier, String message, DHCPOption[] options)
Response is populated according to the DHCP request received (must be DHCPREQUEST), the proposed client address and a set of pre-set options.
Note: getDefaultSocketAddress is called internally to populate
address and port number to which response should be sent.
request - requestofferedAddress - offered addressleaseTime - lease timeserverIdentifier - server identfiermessage - messageoptions - optionspublic static final DHCPPacket makeDHCPNak(DHCPPacket request, InetAddress serverIdentifier, String message)
Response is populated according to the DHCP request received (must be DHCPREQUEST), the proposed client address and a set of pre-set options.
Note: getDefaultSocketAddress is called internally to populate
address and port number to which response should be sent.
request - requestserverIdentifier - server identifiermessage - messagepublic static InetSocketAddress getDefaultSocketAddress(DHCPPacket request, byte responseType)
This is a method ready to use for *standard* behaviour for any RFC compliant DHCP Server.
If giaddr is null, it is the client's addres/68, otherwise
giaddr/67.
Standard behaviour is to set the response packet as follows:
response.setAddrPort (getDefaultSocketAddress (request), response.getOp ());
request - the client DHCP requestresponseType - the DHCP Message Type the servers wants to send (DHCPOFFER, DHCPACK,
DHCPNAK)IllegalArgumentException - if request is null.IllegalArgumentException - if responseType is not valid.Copyright © 2018 Philip Helger. All rights reserved.