--- bin/dhcpd.pl 2009/07/29 00:46:29 27 +++ bin/dhcpd.pl 2009/07/29 12:23:47 33 @@ -69,8 +69,11 @@ } write_file "$conf/mac/$mac", $ip; - unlink "$conf/ip/$ip" if -e "$conf/ip/$ip"; - symlink "$conf/mac/$mac", "$conf/ip/$ip"; + if ( -l "$conf/ip/$ip" && readlink "$conf/ip/$ip" ne "$conf/mac/$mac") { + unlink "$conf/ip/$ip"; + symlink "$conf/mac/$mac", "$conf/ip/$ip"; + warn "$mac IP changed to $ip"; + } print "$mac NEW $ip\n"; @@ -132,6 +135,7 @@ warn "DHCP REQUEST $requested_ip"; if ( $ip eq $requested_ip ) { $packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPACK(); + $packet->{DHO_DHCP_LEASE_TIME()} = 100; } else { $packet->{DHO_DHCP_MESSAGE_TYPE()} = DHCPNAK(); $packet->{DHO_DHCP_MESSAGE()} = "Bad request, expected $ip";