svn commit: r393856 - in head/net-mgmt: . p5-Net-OpenVPN-Manage p5-Net-OpenVPN-Manage/files
Alexey Dokuchaev
danfe at FreeBSD.org
Mon Aug 10 10:51:32 UTC 2015
Author: danfe
Date: Mon Aug 10 10:51:30 2015
New Revision: 393856
URL: https://svnweb.freebsd.org/changeset/ports/393856
Log:
Add Perl module for managing an OpenVPN process via its management port,
with custom patch that introduces new method to return active connection
status information as a hash to hashes.
Submitted by: Zeus Panchenko <zeus at gnu.org.ua>
Added:
head/net-mgmt/p5-Net-OpenVPN-Manage/
head/net-mgmt/p5-Net-OpenVPN-Manage/Makefile (contents, props changed)
head/net-mgmt/p5-Net-OpenVPN-Manage/distinfo (contents, props changed)
head/net-mgmt/p5-Net-OpenVPN-Manage/files/
head/net-mgmt/p5-Net-OpenVPN-Manage/files/patch-lib_Net_OpenVPN_Manage.pm (contents, props changed)
head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-descr (contents, props changed)
head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-plist (contents, props changed)
Modified:
head/net-mgmt/Makefile
Modified: head/net-mgmt/Makefile
==============================================================================
--- head/net-mgmt/Makefile Mon Aug 10 10:37:24 2015 (r393855)
+++ head/net-mgmt/Makefile Mon Aug 10 10:51:30 2015 (r393856)
@@ -217,6 +217,7 @@
SUBDIR += p5-Net-IPv6Addr
SUBDIR += p5-Net-NSCA-Client
SUBDIR += p5-Net-Netmask
+ SUBDIR += p5-Net-OpenVPN-Manage
SUBDIR += p5-Net-SNMP
SUBDIR += p5-Net-SNMP-Util
SUBDIR += p5-Net-SNMPTrapd
Added: head/net-mgmt/p5-Net-OpenVPN-Manage/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/p5-Net-OpenVPN-Manage/Makefile Mon Aug 10 10:51:30 2015 (r393856)
@@ -0,0 +1,20 @@
+# $FreeBSD$
+
+PORTNAME= Net-OpenVPN-Manage
+PORTVERSION= 0.02
+CATEGORIES= net-mgmt perl5
+MASTER_SITES= CPAN
+PKGNAMEPREFIX= p5-
+
+MAINTAINER= perl at FreeBSD.org
+COMMENT= Manage an OpenVPN process via its management port
+
+LICENSE= ART10 GPLv2
+LICENSE_COMB= dual
+
+RUN_DEPENDS= p5-Net-Telnet>=0:${PORTSDIR}/net/p5-Net-Telnet
+
+USES= perl5
+USE_PERL5= configure
+
+.include <bsd.port.mk>
Added: head/net-mgmt/p5-Net-OpenVPN-Manage/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/p5-Net-OpenVPN-Manage/distinfo Mon Aug 10 10:51:30 2015 (r393856)
@@ -0,0 +1,2 @@
+SHA256 (Net-OpenVPN-Manage-0.02.tar.gz) = b7fd691c24e4fbc78c2af992550abc96bf0db48d6f9e1406f0ebcb22ba0eeb57
+SIZE (Net-OpenVPN-Manage-0.02.tar.gz) = 12066
Added: head/net-mgmt/p5-Net-OpenVPN-Manage/files/patch-lib_Net_OpenVPN_Manage.pm
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/p5-Net-OpenVPN-Manage/files/patch-lib_Net_OpenVPN_Manage.pm Mon Aug 10 10:51:30 2015 (r393856)
@@ -0,0 +1,104 @@
+--- lib/Net/OpenVPN/Manage.pm.orig 2006-07-10 18:21:19 UTC
++++ lib/Net/OpenVPN/Manage.pm
+@@ -1,3 +1,5 @@
++# -*- mode: cperl; mode: follow; -*-
++
+ package Net::OpenVPN::Manage;
+
+ use strict;
+@@ -217,6 +219,84 @@ sub status_ref() {
+ return $ref;
+ }
+
++# $hash_ref = $vpn->status_hash();
++sub status_hash() {
++ my $ref;
++ my $self = shift;
++ my $arg = 2;
++ my $telnet = $self->{objects}{_telnet_};
++ my @output = $telnet->cmd(String => 'status '.$arg, Prompt => '/(SUCCESS:.*\n|ERROR:.*\n|END.*\n)/');
++ unless ($telnet->last_prompt =~ /(SUCCESS:.*|END.*\n)/){
++ $self->{error_msg} = $telnet->last_prompt();
++ return 0;
++ }
++ unless ($telnet->last_prompt =~ /END.*\n/){
++ return $telnet->last_prompt();
++ }
++ my ( $i, @arr );
++ foreach my $ln ( @output ){
++ chomp $ln;
++ if (( $ln eq '' ) || ( $ln =~ /^\s*$/ )){
++ next;
++ } elsif ( $ln =~ s/^(CLIENT_LIST),// ) {
++ @arr = split ',', $ln;
++ chomp @arr;
++ $ref->{$1}->{$arr[0]} = {
++ ip_real => $arr[1],
++ ip_virt => $arr[2],
++ b_recv => $arr[3],
++ b_sent => $arr[4],
++ ts => $arr[5],
++ ts_s => $arr[6],
++ name => $arr[7],
++ };
++ undef @arr;
++ } elsif ( $ln =~ s/^(ROUTING_TABLE),// ) {
++ @arr = split ',', $ln;
++ chomp @arr;
++ $ref->{$1}->{$arr[1]} = {
++ ip_virt => $arr[0],
++ ip_real => $arr[2],
++ ts => $arr[3],
++ ts_s => $arr[4],
++ };
++ undef @arr;
++ } elsif ( $ln =~ /^HEADER,ROUTING_TABLE/ ) {
++ @arr = split ',', $ln;
++ chomp @arr;
++ $ref->{HEADER}->{$arr[1]} = {
++ ip_virt => 'Virtual Address',
++ cn => 'Common Name',
++ ip_real => 'Real Address',
++ ts => 'Last Ref',
++ ts_s => 'Last Ref (time_t)',
++ };
++ undef @arr;
++ } elsif ( $ln =~ /^HEADER,CLIENT_LIST/ ) {
++ @arr = split ',', $ln;
++ chomp @arr;
++ $ref->{HEADER}->{$arr[1]} = {
++ cn => 'Common Name',
++ ip_real => 'Real Address',
++ ip_virt => 'Virtual Address',
++ b_recv => 'Bytes Received',
++ b_sent => 'Bytes Sent',
++ ts => 'Connected Since',
++ ts_s => 'Connected Since (time_t)',
++ name => 'Username',
++ };
++ undef @arr;
++ } elsif ( $ln =~ s/^(TITLE),// ){
++ $ref->{$1}=$ln;
++ } elsif ( $ln =~ s/^(TIME),// ){
++ $ref->{$1}=$ln;
++ } elsif ( $ln =~ s/^(GLOBAL_STATS),// ){
++ $ref->{$1}=$ln;
++ }
++ }
++ return $ref;
++}
++
+ # Not implemented
+ sub test {
+ my $self = shift;
+@@ -478,6 +558,10 @@ If called without an argument, it will r
+ # Print the connection status page using the version 2 format.
+ print $vpn->status(2);
+
++=item $vpn->status_hash( );
++
++Returns the active connections status information as a hash to hashes.
++
+ =item $vpn->status_ref( );
+
+ Returns the active connections status information as a reference to a hash of arrays.
Added: head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-descr Mon Aug 10 10:51:30 2015 (r393856)
@@ -0,0 +1,4 @@
+This module connects to the OpenVPN management interface, executes commands
+on the interface, and returns the results or errors that result.
+
+WWW: http://search.cpan.org/dist/Net-OpenVPN-Manage/
Added: head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-plist
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/p5-Net-OpenVPN-Manage/pkg-plist Mon Aug 10 10:51:30 2015 (r393856)
@@ -0,0 +1,3 @@
+%%PERL5_MAN3%%/Net::OpenVPN::Manage.3.gz
+%%SITE_PERL%%/Net/OpenVPN/Manage.html
+%%SITE_PERL%%/Net/OpenVPN/Manage.pm
More information about the svn-ports-head
mailing list