NAME
    POE::Component::Server::NRPE - A POE Component implementation of NRPE
    Daemon.

SYNOPSIS
      use strict;
      use POE;
      use POE::Component::Server::NRPE;

      my $port = 5666;
      
  my $nrped = POE::Component::Server::NRPE->spawn(
            port => $port;
      );

      $nrped->add_command( command => meep, program => \&_meep );

      $poe_kernel->run();
      exit 0;

      sub _meep {
        print STDOUT "OK meep\n";
        return 0;
      }

DESCRIPTION
    POE::Component::Server::NRPE is a POE component that implements an NRPE
    (Nagios Remote Plugin Executor) daemon supporting both version 1 and
    version 2 protocols. It also supports SSL encryption using Net::SSLeay
    and a hacked version of POE::Component::SSLify.

CONSTRUCTOR
    spawn
        Takes a number of parameters, which are optional:

          'address', bind the listening socket to a particular address, default is IN_ADDR_ANY;
          'port', specify a port to listen on, default is 5666;
          'version', the NRPE protocol version to use, default is 2;
          'usessl', set this to 0 to disable SSL support with NRPE Version 2, default is 1;
          'time_out', specify a time out in seconds for socket connections and commands, default is 10;

        Returns a POE::Component::Server::NRPE object.

METHODS
    session_id
        Returns the POE::Session ID of the component.

    shutdown
        Terminates the component. Shuts down the listener and disconnects
        connected clients.

    getsockname
        Access to the POE::Wheel::SocketFactory method of the underlying
        listening socket.

    add_command
        This will add a command that can be run. Takes a number of
        parameters:

          'command', a label for the command. This is what clients will request, mandatory;
          'program', the program to run. Can be a coderef, mandatory;
          'args', the command line arguments to pass to the above program, must be an arrayref;

        Returns 1 if successful, undef otherwise.

    del_command
        Removes a previously defined command. Takes one argument, the
        previously defined label to remove.

        Returns 1 if successful, undef otherwise.

CAVEATS
    Due to problems with Net::SSLeay mixing of client and server SSL is not
    encouraged unless fork() is employed.

TODO
    Add the ability to have event handlers triggered to other POE sessions
    for commands.

    Add a logging capability.

AUTHOR
    Chris "BinGOs" Williams <chris@bingosnet.co.uk>

    This module uses code derived from
    <http://www.stic-online.de/stic/html/nrpe-generic.html> Copyright (C)
    2006, 2007 STIC GmbH, http://www.stic-online.de

SEE ALSO
    POE

    POE::Component::SSLify

    <http://www.nagios.org/>

