NAME
   Plack::App::OpenVPN::Status - Plack application to display the sessions
   of OpenVPN server

VERSION
   version 0.16

SYNOPSIS
       use Plack::Builder;
       use Plack::App::File;
       use Plack::App::OpenVPN::Status;

       builder {
           mount '/static' => Plack::App::File->new(root => "/path/to/static");
           mount '/' =>
               Plack::App::OpenVPN::Status->new(
                   status_from => "/path/to/openvpn/status.log"
               );
       };

DESCRIPTION
   Plack::App::OpenVPN::Status is an application to display active sessions
   of the OpenVPN server.

   It parses OpenVPN status log and displays active sessions. Supported all
   three versions of the status log. Check the OpenVPN server documentation
   how to set up version. Howewer, there is no needs (and no ability, at
   the moment) to point version of status log. Application detect it
   authomatically. Also status log version will be diplayed on the
   generated web page.

   *Twitter Bootstrap* layout is used to diplay active OpenVPN sessions.

METHODS
 new([%options])
   Creates a new application. The following options are supported:

   status_from
       Path to OpenVPN server status log file. This option is required. At
       the moment, the application can able to read versions 1, 2, 3 of the
       status log file.

   custom_view
       Coderef used as a view to display sessions. This must be a valid
       Text::MicroTemplate's template. The hashref of params is passed to
       the view as first argument. So you can use it like this:

           % my $vars = $_[0];

       Now $vars contains the structure like this:

           $vars = {
               'updated' => 'Wed Dec  5 21:25:58 2012',
               'version' => '2',
               'users'   => [
                   {
                       'common-name' => 'cadvecisvo',
                       'remote-ip'   => '1.2.3.4',
                       'remote-port' => '4944',
                       'rx-bytes'    => '1.21 Mio',
                       'tx-bytes'    => '503.1 Kio',
                       'connected'   => 'Wed Dec  5 21:16:58 2012',
                       'virtual'     => '00:ff:de:ad:be:ef',
                       'last-ref'    => 'Wed Dec  5 21:25:55 2012',
                   }
               ]
           }

 default_view
   This is the default view to display sessions. It uses Twitter Bootstrap
   layout.

 openvpn_status
   Parses OpenVPN status log. Automatically selects parser for given
   version of file.

 prepare_app
   See Plack::Component

 call
   See Plack::Component

SEE ALSO
   Plack

   Plack::Component

   Text::MicroTemplate

   OpenVPN Manual
   <http://openvpn.net/index.php/open-source/documentation/manuals.html>

   Twitter Bootstrap <https://github.com/twitter/bootstrap>

AUTHOR
   Anton Gerasimov <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2012 by Anton Gerasimov.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.