/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;