temp.setOptionAsInetAddress(DHO_SUBNET_MASK, "255.255.255.0");
temp.setOptionAsInetAddress(DHO_ROUTERS, "192.168.1.1");
// store options in a instance array
this.commonOptions = temp.getOptionsArray();
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
}
/**
* @see org.dhcp4java.DHCPServlet#doDiscover(org.dhcp4java.DHCPPacket)
*/
@Override
protected DHCPPacket doDiscover(DHCPPacket request) {
InetAddress clientIp = this.calcAddrFromMac(request);
if (clientIp == null) {
return null;
}
DHCPPacket response = new DHCPPacket();
response.setOp(BOOTREPLY);
response.setHtype(request.getHtype());
response.setHlen(request.getHlen());
response.setHops((byte) 0);
response.setXid(request.getXid());
response.setSecs((short) 0);
response.setYiaddr(clientIp);
response.setSiaddr(server.getSockAddress().getAddress()); // server
// identifier
response.setFlags(request.getFlags());
response.setGiaddrRaw(request.getGiaddrRaw());
response.setChaddr(request.getChaddr());
response.setDHCPMessageType(DHCPOFFER);
response.setOptions(this.commonOptions);
response.setAddrPort(DHCPResponseFactory.getDefaultSocketAddress(
request, response.getOp()));
return response;
}
/**
* @see org.dhcp4java.DHCPServlet#doRequest(org.dhcp4java.DHCPPacket)
*/
protected DHCPPacket doRequest(DHCPPacket request) {
InetAddress clientIp = this.calcAddrFromMac(request);
if (clientIp == null) {
return null;
}
DHCPPacket response = new DHCPPacket();
response.setOp(BOOTREPLY);
response.setHtype(request.getHtype());
response.setHlen(request.getHlen());
response.setHops((byte) 0);
response.setXid(request.getXid());
response.setSecs((short) 0);
response.setCiaddrRaw(request.getCiaddrRaw());
response.setYiaddr(clientIp);
response.setSiaddr(server.getSockAddress().getAddress()); // server
// identifier
response.setFlags(request.getFlags());
response.setGiaddrRaw(request.getGiaddrRaw());
response.setChaddr(request.getChaddr());
response.setDHCPMessageType(DHCPACK);
response.setOptions(this.commonOptions);
response.setAddrPort(DHCPResponseFactory.getDefaultSocketAddress(
request, response.getOp()));
return response;
}
/**
* @see org.dhcp4java.DHCPServlet#doDecline(org.dhcp4java.DHCPPacket)
*/
@Override
protected DHCPPacket doDecline(DHCPPacket request) {
logger.warning("DHCPDECLINE received:" + request.toString());
return null;
}
/**
* @see org.dhcp4java.DHCPServlet#doRelease(org.dhcp4java.DHCPPacket)
*/
@Override
protected DHCPPacket doRelease(DHCPPacket request) {
logger.info("DHCPRELEASE receiv