org.apache.directory.server.dhcp.service
Class AbstractDhcpService

java.lang.Object
  extended by org.apache.directory.server.dhcp.service.AbstractDhcpService
All Implemented Interfaces:
DhcpService
Direct Known Subclasses:
StoreBasedDhcpService

public abstract class AbstractDhcpService
extends java.lang.Object
implements DhcpService

Abstract implementation of the server-side DHCP protocol. This class just provides some utility methods and dispatches server-bound messages to handler methods which can be overridden to provide the functionality.

Client-bound messages and BOOTP messages are ignored.

Version:
$Rev: 545042 $, $Date: 2007-06-06 22:32:01 -0500 (Mi, 06 Jun 2007) $
Author:
Apache Directory Project

Constructor Summary
AbstractDhcpService()
           
 
Method Summary
protected  java.net.InetAddress determineSelectionBase(java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Determine address on which to base selection.
 DhcpMessage getReplyFor(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Retrieve the reply to a given message.
protected  DhcpMessage handleDISCOVER(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle DHCPDISCOVER message.
protected  DhcpMessage handleINFORM(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle DHCPINFORM message.
protected  DhcpMessage handleOFFER(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle DHCPOFFER message.
protected  DhcpMessage handleRELEASE(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle DHCPRELEASE message.
protected  DhcpMessage handleREQUEST(java.net.InetSocketAddress localAddress, java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle DHCPREQUEST message.
protected  DhcpMessage handleUnknownMessage(java.net.InetSocketAddress clientAddress, DhcpMessage request)
          Handle unknown DHCP message.
protected  DhcpMessage initGeneralReply(java.net.InetSocketAddress localAddress, DhcpMessage request)
          Initialize a general DHCP reply message.
protected  void stripUnwantedOptions(DhcpMessage request, OptionsField options)
          Strip options that the client doesn't want, if the ParameterRequestList option is present.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractDhcpService

public AbstractDhcpService()
Method Detail

getReplyFor

public final DhcpMessage getReplyFor(java.net.InetSocketAddress localAddress,
                                     java.net.InetSocketAddress clientAddress,
                                     DhcpMessage request)
                              throws DhcpException
Description copied from interface: DhcpService
Retrieve the reply to a given message. The reply may be zero, if the message should be ignored.

Specified by:
getReplyFor in interface DhcpService
Parameters:
localAddress - TODO
Returns:
DhcpMessage
Throws:
DhcpException

handleUnknownMessage

protected DhcpMessage handleUnknownMessage(java.net.InetSocketAddress clientAddress,
                                           DhcpMessage request)
Handle unknown DHCP message. The default implementation just logs and ignores it.

Parameters:
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.

handleINFORM

protected DhcpMessage handleINFORM(java.net.InetSocketAddress localAddress,
                                   java.net.InetSocketAddress clientAddress,
                                   DhcpMessage request)
                            throws DhcpException
Handle DHCPINFORM message. The default implementation just ignores it.

Parameters:
localAddress -
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.
Throws:
DhcpException

handleRELEASE

protected DhcpMessage handleRELEASE(java.net.InetSocketAddress localAddress,
                                    java.net.InetSocketAddress clientAddress,
                                    DhcpMessage request)
                             throws DhcpException
Handle DHCPRELEASE message. The default implementation just ignores it.

Parameters:
localAddress -
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.
Throws:
DhcpException

handleREQUEST

protected DhcpMessage handleREQUEST(java.net.InetSocketAddress localAddress,
                                    java.net.InetSocketAddress clientAddress,
                                    DhcpMessage request)
                             throws DhcpException
Handle DHCPREQUEST message. The default implementation just ignores it.

Parameters:
localAddress -
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.
Throws:
DhcpException

handleDISCOVER

protected DhcpMessage handleDISCOVER(java.net.InetSocketAddress localAddress,
                                     java.net.InetSocketAddress clientAddress,
                                     DhcpMessage request)
                              throws DhcpException
Handle DHCPDISCOVER message. The default implementation just ignores it.

Parameters:
localAddress -
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.
Throws:
DhcpException

handleOFFER

protected DhcpMessage handleOFFER(java.net.InetSocketAddress localAddress,
                                  java.net.InetSocketAddress clientAddress,
                                  DhcpMessage request)
                           throws DhcpException
Handle DHCPOFFER message. The default implementation just ignores it.

Parameters:
localAddress -
clientAddress -
request - the request message
Returns:
DhcpMessage response message or null to ignore (don't reply to) it.
Throws:
DhcpException

initGeneralReply

protected final DhcpMessage initGeneralReply(java.net.InetSocketAddress localAddress,
                                             DhcpMessage request)
Initialize a general DHCP reply message. Sets:

Parameters:
localAddress -
request -
Returns:
DhcpMessage

determineSelectionBase

protected final java.net.InetAddress determineSelectionBase(java.net.InetSocketAddress clientAddress,
                                                            DhcpMessage request)
Determine address on which to base selection. If the relay agent address is set, we use the relay agent's address, otherwise we use the address we received the request from.

Parameters:
clientAddress -
request -
Returns:
InetAddress

stripUnwantedOptions

protected final void stripUnwantedOptions(DhcpMessage request,
                                          OptionsField options)
Strip options that the client doesn't want, if the ParameterRequestList option is present.

Parameters:
request -
options -


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.