NAME Net::ISC::DHCPd - Interacts with ISC DHCPd VERSION 0.09 SYNOPSIS my $dhcpd = Net::ISC::DHCPd->new( config => { file => "path/to/config" }, leases => { file => "path/to/leases" }, omapi => { key => "some key" }, ); $self->test('config') or die $self->errstr; # start the dhcpd server $dhcpd->start({ user => 'john-doe', group => 'users', interfaces => 'eth0', }) or die $dhcpd->errstr; print $dhcpd->status; $dhcpd->restart or die $dhcpd->errstr; print $dhcpd->status; $dhcpd->stop or die $dhcpd->errstr; print $dhcpd->status; See the tests bundled to this distribution for more examples. This module is subject for a major rewrite. Patches and comments are welcome - reason for this is that Net::ISC::DHCPd::Process does not work as expected. DESCRIPTION This namespace contains three semi-separate projects, which this module binds together: dhcpd.conf, dhcpd.leases and omapi. It is written with Moose which provides classes and roles to represents things like a host, a lease or any other thing. The distribution as a whole is targeted an audience who configure and/or analyze the . If you are not familiar with the server, check out . ATTRIBUTES config This attribute holds a read-only Net::ISC::DHCPd::Config object. It can be set from the constructor, using either an object or a hash-ref. The hash-ref will then be passed on to the constructor. leases This attribute holds a read-only Net::ISC::DHCPd::Leases object. It can be set from the constructor, using either an object or a hash-ref. The hash-ref will then be passed on to the constructor. omapi This attribute holds a read-only Net::ISC::DHCPd::OMAPI object. It can be set from the constructor, using either an object or a hash-ref. The hash-ref will then be passed on to the constructor. binary This attribute holds a Path::Class::File object to the dhcpd binary. It is read-only and the default is "dhcpd3". pidfile This attribute holds a Path::Class::File object to the dhcpd binary. It is read-only and the default is "/var/run/dhcp3-server/dhcpd.pid". process This attribute holds a read-only Net::ISC::DHCPd::Process object. It can be set from the constructor, using either an object or a hash-ref. The hash-ref will then be passed on to the constructor. errstr Holds the last know error as a plain string. METHODS start $any = $self->start(\%args); Will start the dhcpd server, as long as there is no existing process. See "SYNOPSIS" for example. %args can have "user", "group" and "interfaces" which all points to strings. This method returns and integer or undef: "1" means "started". "0" means "already running" and "undef" means failed to start the server. Check "errstr" on failure. TODO: Enable it to start the server as a different user/group. stop $bool = $self->stop; This method will stop a running server. A true return value means that the server got stopped, while false means it could not be stopped. Check errstr on failure. restart $bool = $self->restart; This method will restart a running server or start a stopped server. A true return value means that the server got started, while false means it could not be started/restarted. Check errstr or failure. status $str = $self->status; Returns the status of the DHCPd server: "stopped" or "running". test $bool = $self->test("config"); $bool = $self->test("leases"); Will test either the config or leases file. It returns a boolean value which indicates if it is valid or not: True means it is valid, while false means it is invalid. Check "errstr" on failure - it will contain a descriptive string from either this module, $! or the exit value (integer stored as a string). BUGS Please report any bugs or feature requests to "bug-net-isc-dhcpd at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. COPYRIGHT & LICENSE Copyright 2007 Jan Henning Thorsen, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR Jan Henning Thorsen, "" CONTRIBUTORS Nito Martinez Alexey Illarionov Patrick napetrov