/usr/local/CPAN/Net-DHCP-Control/Net/DHCP/Control/Lease.pm
package Net::DHCP::Control::Lease;
use Net::DHCP::Control ':types';
use base Net::DHCP::Control::Generic;
use base Exporter;
@EXPORT_OK = qw(lease_statename);
$KIND = 'lease';
%ATTRS = ('ip-address' => TP_STRING,
ends => TP_INT,
starts => TP_INT,
state => TP_UINT,
'dhcp-client-identifier' => TP_STRING,
'client-hostname' => TP_STRING,
# host => TP_HANDLE,
# subnet => TP_HANDLE,
# pool => TP_HANDLE,
# 'billing-class' => TP_HANDLE,
'hardware-address' => TP_STRING,
'hardware-type' => TP_STRING,
);
%OPTS = %Net::DHCP::Control::Generic::OPTS;
sub is_active {
my $self = shift;
my $now = time;
$self->get('ends') > $now && $self->get('starts') <= $now ;
}
my @state = qw(unavailable free active expired released abandoned
reset backup reserved bootp);
my %state = map {$state[$_] => $_} 0 .. $#state;
sub lease_statename {
my $arg = shift;
if ($arg =~ /^\d+$/) {
$state[$arg];
} else {
$state{$arg};
}
}
1;