126 |
my $messagetype = $dhcp->getOptionValue(DHO_DHCP_MESSAGE_TYPE()); |
my $messagetype = $dhcp->getOptionValue(DHO_DHCP_MESSAGE_TYPE()); |
127 |
|
|
128 |
if ($messagetype eq DHCPDISCOVER()) { |
if ($messagetype eq DHCPDISCOVER()) { |
129 |
warn "DHCP DISCOVER"; |
log::mac $mac, "DHCP DISCOVER"; |
130 |
$packet->{Comment} = $dhcp->comment(); |
$packet->{Comment} = $dhcp->comment(); |
131 |
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPOFFER(); |
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPOFFER(); |
132 |
} elsif ($messagetype eq DHCPREQUEST()) { |
} elsif ($messagetype eq DHCPREQUEST()) { |
133 |
my $requested_ip = $dhcp->getOptionValue(DHO_DHCP_REQUESTED_ADDRESS()); |
my $requested_ip = $dhcp->getOptionValue(DHO_DHCP_REQUESTED_ADDRESS()); |
134 |
warn "DHCP REQUEST $requested_ip"; |
log::mac $mac, "DHCP REQUEST $requested_ip"; |
135 |
if ( $ip eq $requested_ip ) { |
if ( $ip eq $requested_ip ) { |
136 |
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPACK(); |
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPACK(); |
137 |
$packet->{DHO_DHCP_LEASE_TIME()} = 5 * 60; # 5 min |
$packet->{DHO_DHCP_LEASE_TIME()} = 5 * 60; # 5 min |
146 |
$packet->{DHO_DHCP_MESSAGE()} = "Bad request, expected $ip"; |
$packet->{DHO_DHCP_MESSAGE()} = "Bad request, expected $ip"; |
147 |
} |
} |
148 |
} elsif ($messagetype eq DHCPINFORM()) { |
} elsif ($messagetype eq DHCPINFORM()) { |
149 |
warn "DHCP INFORM ignored"; |
log::mac $mac, "DHCP INFORM ignored"; |
150 |
} else { |
} else { |
151 |
warn "$messagetype igored (bootp?)"; |
log::mac $mac, "$messagetype igored (bootp?)"; |
152 |
} |
} |
153 |
|
|
154 |
warn ">> $mac == $ip server: $server::ip", $pxe::file ? " pxe file: $pxe::file\n" : "\n"; |
warn ">> $mac == $ip server: $server::ip", $pxe::file ? " pxe file: $pxe::file\n" : "\n"; |