use Net::DHCP::Packet;
use Net::DHCP::Constants 0.67;
-use CouchDB;
+use store;
use format;
use server;
config::for_ip( $ip );
- my $server;
- map { $server->{ $_ } = eval '$server::' . $_ } ( 'ip', 'netmask', 'bcast', 'domain' );
-
- if ( my $force = client::conf( $ip => 'dhcpd.pl' ) ) {
- eval $force;
- die "$force\n$@" if $@;
- warn "force server ", dump $server;
- }
+ my $server = server::as_hash_for $ip;
my $packet = {
Op => BOOTREPLY(),
my $options = {
DHO_SUBNET_MASK() => $server->{netmask},
- DHO_ROUTERS() => $server->{ip},
+ DHO_ROUTERS() => ( $server->{gw} || $server->{ip} ),
DHO_DOMAIN_NAME() => $server->{domain},
DHO_NAME_SERVERS() => $server->{ip},
- DHO_DOMAIN_NAME_SERVERS() => $server->{ip},
+ DHO_DOMAIN_NAME_SERVERS() => ( $server->{dns} || $server->{ip} ),
DHO_HOST_NAME() => client::conf( $ip, 'hostname' ),
DHO_BROADCAST_ADDRESS() => $server->{bcast},
# DHO_NTP_SERVERS() => '',
warn $audit->{error};
}
- CouchDB::audit( @type, $audit );
+ store::audit( @type, $audit );
# system("arp -s $ip $mac"),
print "DHCP listen on ",$sock->sockhost,":",$sock->sockport,"\n";
- CouchDB::audit( 'start', { addr => $sock->sockhost, port => $sock->sockport } );
+ store::audit( 'start', { addr => $sock->sockhost, port => $sock->sockport } );
while (1) {
server->refresh;