use server;
my $debug = server::debug;
-use pxe;
if ( ! $server::ip ) {
my $server_ip = `/sbin/ifconfig`;
$server::ip = $server_ip;
}
-warn "server ip $server::ip file: $pxe::file range: $server::ip_from - $server::ip_to\n";
+warn "server ip $server::ip range: $server::ip_from - $server::ip_to\n";
my $addr = $server::ip_from;
return $ip;
}
+use log;
+use config;
+
+our $file;
our $transaction = 0; # FIXME predictible transaction numbers
sub process_packet {
=cut
+ config::for_ip( $ip );
+
my $packet = {
Op => BOOTREPLY(),
Hops => $dhcp->hops(),
Siaddr => $server::ip,
Giaddr => $dhcp->giaddr(),
Chaddr => $dhcp->chaddr(),
- File => $pxe::file,
+ File => $file,
};
- pxe::config_for_ip( $ip );
-
my $messagetype = $dhcp->getOptionValue(DHO_DHCP_MESSAGE_TYPE());
if ($messagetype eq DHCPDISCOVER()) {
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPOFFER();
} elsif ($messagetype eq DHCPREQUEST()) {
my $requested_ip = $dhcp->getOptionValue(DHO_DHCP_REQUESTED_ADDRESS());
- log::mac $mac, "DHCP REQUEST $requested_ip $ip $pxe::file";
+ log::mac $mac, "DHCP REQUEST $requested_ip $ip $file";
if ( $ip eq $requested_ip ) {
$packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPACK();
$packet->{DHO_DHCP_LEASE_TIME()} = 5 * 60; # 5 min
log::mac $mac, "$messagetype igored (bootp?)";
}
- warn ">> $mac == $ip server: $server::ip", $pxe::file ? " pxe file: $pxe::file\n" : "\n" if $debug;
+ warn ">> $mac == $ip server: $server::ip", $file ? " file: $file\n" : "\n" if $debug;
$packet = new Net::DHCP::Packet( %$packet );
warn "send ",$packet->toString() if $debug;