public class DHCPServlet extends Object
Normal use is to override the doXXX() or service()
method to provide your own application logic.
For simple servers or test purpose, it as also a good idea to provide a
main() method so you can easily launch the server by running the
servlet.
| Modifier and Type | Field and Description |
|---|---|
protected DHCPCoreServer |
m_aServer
the server instance running this servlet
|
| Constructor and Description |
|---|
DHCPServlet() |
| Modifier and Type | Method and Description |
|---|---|
protected DHCPPacket |
doDecline(DHCPPacket request)
Process DECLINE request.
|
protected DHCPPacket |
doDiscover(DHCPPacket request)
Process DISCOVER request.
|
protected DHCPPacket |
doInform(DHCPPacket request)
Process INFORM request.
|
protected DHCPPacket |
doRelease(DHCPPacket request)
Process RELEASE request.
|
protected DHCPPacket |
doRequest(DHCPPacket request)
Process REQUEST request.
|
DHCPCoreServer |
getServer() |
void |
init(Properties props)
Initialize servlet.
|
protected void |
postProcess(DatagramPacket requestDatagram,
DatagramPacket responseDatagram)
You have a chance to catch response before it is sent back to client.
|
protected DHCPPacket |
service(DHCPPacket request)
General method for parsing a DHCP request.
|
DatagramPacket |
serviceDatagram(DatagramPacket requestDatagram)
Low-level method for receiving a UDP Daragram and sending one back.
|
void |
setServer(DHCPCoreServer server) |
protected DHCPCoreServer m_aServer
public void init(Properties props)
This method is called once at stratup, before any request is passed to the servlet. A properties is passed to the servlet to read whatever parameters it needs.
There is no default behaviour.
props - a Properties containing parameters, as passed to
DHCPCoreServerpublic DatagramPacket serviceDatagram(DatagramPacket requestDatagram)
This methode normally does not need to be overriden and passes control to
service() for DHCP packets handling. Howerever the
service() method is not called if the DHCP request is invalid
(i.e. could not be parsed). So overriding this method gives you control on
every datagram received, not only valid DHCP packets.
requestDatagram - the datagram received from the clientnull if no
answerprotected DHCPPacket service(DHCPPacket request)
Returns the DHCPPacket to send back to the client, or null if we silently ignore the request.
Default behaviour: ignore BOOTP packets, and dispatch to
doXXX() methods.
request - DHCP request from the clientnull if
no responseprotected DHCPPacket doDiscover(DHCPPacket request)
request - DHCP request received from clientnull if no response.protected DHCPPacket doRequest(DHCPPacket request)
request - DHCP request received from clientnull if no response.protected DHCPPacket doInform(DHCPPacket request)
request - DHCP request received from clientnull if no response.protected DHCPPacket doDecline(DHCPPacket request)
request - DHCP request received from clientnull if no response.protected DHCPPacket doRelease(DHCPPacket request)
request - DHCP request received from clientnull if no response.protected void postProcess(DatagramPacket requestDatagram, DatagramPacket responseDatagram)
This allows for example for last minute modification (who knows?) or for specific logging.
Default behaviour is to do nothing.
The only way to block the response from being sent is to raise an exception.
requestDatagram - datagram received from clientresponseDatagram - datagram sent back to clientpublic DHCPCoreServer getServer()
public void setServer(DHCPCoreServer server)
server - The server to set.Copyright © 2018 Philip Helger. All rights reserved.