Jan Henning Thorsen > Net-ISC-DHCPd-0.14 > Net::ISC::DHCPd::OMAPI

Download:
Net-ISC-DHCPd-0.14.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  1
View/Report Bugs
Source   Latest Release: Net-ISC-DHCPd-0.17

NAME ^

Net::ISC::DHCPd::OMAPI - Talk to a dhcp server

SYNOPSIS ^

    my $omapi = Net::ISC::DHCPd::OMAPI->new(
                    key => "dhcpd secret",
                );

    # connect is lazy
    $omapi->connect

    my $lease = $omapi->new_object(lease => (
                    ip_address => "10.19.83.200",
                ));

    if($lease->read) {
        printf("Got hardware_address=%s from ip_address=%s\n",
            $lease->hardware_address,
            $lease->ip_address,
        );
    }

DESCRIPTION ^

This module provides an API to query and possible change the ISC DHCPd server. The module use OMAPI (Object Management API) which does not require the server to be restarted for changes to apply. It does unfortunately support the protocol natively, but instead fork omshell(1) which this module read and write commands to.

OMAPI is simply a communications mechanism that allows you to manipulate objects, which is stored in the dhcpd.leases file.

See subclasses for more information about the different objects you can manipulate: Net::ISC::DHCPd::OMAPI::Failover, Net::ISC::DHCPd::OMAPI::Group, Net::ISC::DHCPd::OMAPI::Host, and Net::ISC::DHCPd::OMAPI::Lease.

ENVIRONMENT VARIABLES ^

ATTRIBUTES ^

server

This attribute is read-only and holds a string describing the remote dhcpd server address. Default value is "127.0.0.1".

port

This attribute is read-only and holds an integer representing the remote dhcpd server port. Default value is "7911".

key

This attribute is read-only and holds a string representing the server secret key. It is in the format $name $secret and the default value is an empty string. An empty string is used for servers without a secret to log in.

errstr

Holds the last know error as a plain string.

METHODS ^

connect

    $bool = $self->connect;

Will open a connection to the dhcp server. Check "errstr" on failure. A connection means starting the program omshell(1) and trying to log in, if the dhcpd "key" is set.

disconnect

    $bool = $self->disconnect;

Will disconnect from the server. This means killing the omshell(1) program, which then actually will make sure the connection is shut down.

new_object

    $object = $self->new_object($type => %constructor_args);

This method will create a new OMAPI object, which can be used to query and/or manipulate the running dhcpd server.

$type can be "group", "host", or "lease". Will return a new config object.

Example, with $type='host':

 Net::ISC::DHCPd::Config::Host->new(%constructor_args);

COPYRIGHT & LICENSE ^

AUTHOR ^

See Net::ISC::DHCPd.

syntax highlighting: