NAME

Net::ISC::DHCPd::Leases - Parse ISC DHCPd leases

SYNOPSIS

my $leases = Net::ISC::DHCPd::Leases->new(
                 file => '/var/lib/dhcp3/dhcpd.leases',
             );

# parse the leases file
$leases->parse;

for my $lease ($leases->leases) {
    say "lease has ended" if($lease->ends < time);
}

if(my $n = $leases->find_leases({ ends => time }) {
    say "$n lease(s) has expired now";
}

DESCRIPTION

An object constructed from this class represents a leases file for the dhcpd server. It is read-only, so changes to the leases file must be done through a running server, using Net::ISC::DHCPd::OMAPI.

The object has one important attribute, which is "leases". This attribute holds a list of Net::ISC::DHCPd::Leases::Lease objects constructed from all the leases found in the leases file.

To parse the leases file, this module use POE::Filter::DHCPd::Lease, but this can be customized by setting _parser in the constructor. Even though it is possible, it is recommended to add features/ bugfixes to POE::Filter::DHCPd::Lease instead.

ATTRIBUTES

leases

Holds a list of all the leases found after reading the leases file.

file

This attribute holds a Path::Class::File object to the leases file. It is read-write and the default value is "/var/lib/dhcp3/dhcpd.leases".

METHODS

parse

Read lines from "file", and parses every lease it can find. Returns the number of leases found. Will add each found lease to "leases".

find_leases

This method will return zero or more Net::ISC::DHCPd::Leases::Lease objects as a list. It takes a hash-ref which will be matched against the attributes of the child leases.

add_lease

This method does not make much sense, and will probably get removed. See "DESCRIPTION" for more details.

COPYRIGHT & LICENSE

AUTHOR

See Net::ISC::DHCPd.