WIO: wio-lib.pl - Patch Bug 12284 - IPSec Connected since information was added

Message ID 20200428160433.8398-1-sfeddersen@ipfire.org
State Accepted
Commit eebbe98186aac2510b10e6801fef3f296e000f05
Headers
Series WIO: wio-lib.pl - Patch Bug 12284 - IPSec Connected since information was added |

Commit Message

Stephan Feddersen April 28, 2020, 4:04 p.m. UTC
  ---
 src/wio/wio-lib.pl | 46 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 33 insertions(+), 13 deletions(-)
  

Patch

diff --git a/src/wio/wio-lib.pl b/src/wio/wio-lib.pl
index bbaf0bf4a..1ff7cfacc 100644
--- a/src/wio/wio-lib.pl
+++ b/src/wio/wio-lib.pl
@@ -3,7 +3,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2017-2018 Stephan Feddersen <sfeddersen@ipfire.org>           #
+# Copyright (C) 2017-2020 Stephan Feddersen <sfeddersen@ipfire.org>           #
 # All Rights Reserved.                                                        #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
@@ -21,7 +21,7 @@ 
 #                                                                             #
 ###############################################################################
 #
-# Version: 2017/07/11 21:32:23
+# Version: 2020/26/04 19:35:23
 #
 # This wio-lib.pl is based on the Code from the IPCop WIO Addon
 # and is extremly adapted to work with IPFire.
@@ -47,10 +47,8 @@  require '/var/ipfire/lang.pl';
 
 my $mailfile = "${General::swroot}/dma/mail.conf";
 my %mail = ();
-&General::readhash($mailfile, \%mail);
 
-my $redactive = "/var/ipfire/red/active";
-my $msg = '';
+&General::readhash($mailfile, \%mail);
 
 ############################################################################################################################
 
@@ -59,7 +57,7 @@  sub getdyndnsip {
 	my $host = $_[1];
 	my @fetchip = ();
 
-	if ( -e $redactive ) {
+	if ( -e "/var/ipfire/red/active" ) {
 		@fetchip = gethostbyname($host);
 
 		if ( defined($fetchip[0]) ) {
@@ -75,17 +73,37 @@  sub getdyndnsip {
 ############################################################################################################################
 
 sub contime {
-	my $str = $_[0];
+	chomp(my $str = $_[0]);
+	chomp(my $vpn = $_[1]);
+
 	my %m = ();
 	@m{qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/} = (0 .. 11);
 
-	if ( $str =~ /^\w{3}\ ([a-zA-Z]+)\ (\d{1,2})\ (\d{2})\:(\d{2})\:(\d{2}) (\d{4})$/ ||
-		 $str =~ /^\w{3}\ ([a-zA-Z]+)\  (\d{1})\ (\d{2})\:(\d{2})\:(\d{2}) (\d{4})$/ ) 
-	{
-		my $past = timelocal($5, $4, $3, $2, $m{$1}, $6);
-		my $now  = time;
+	my $totalsecs = '';
+
+	if ( $vpn eq 'ipsec' ) {
+		my @temp = split (/ /, $str);
+
+		if ( $temp[1] eq 'seconds' ) {
+			$totalsecs = $temp[0];
+		}
+
+		if ( $temp[1] eq 'minutes' ) {
+			$totalsecs = $temp[0] * 60;
+		}
+	}
 
-		my $totalsecs = $now - $past;
+	if ( $vpn eq 'ovpn' ) {
+		if ( $str =~ /^\w{3}\ ([a-zA-Z]+)\ (\d{1,2})\ (\d{2})\:(\d{2})\:(\d{2}) (\d{4})$/ ||
+			 $str =~ /^\w{3}\ ([a-zA-Z]+)\  (\d{1})\ (\d{2})\:(\d{2})\:(\d{2}) (\d{4})$/ )
+		{
+			my $past = timelocal($5, $4, $3, $2, $m{$1}, $6);
+			my $now  = time;
+			$totalsecs = $now - $past;
+		}
+	}
+
+	if ( $totalsecs ne '' )  {
 		my $days = int($totalsecs / 86400);
 		my $totalhours = int($totalsecs / 3600);
 		my $hours = $totalhours % 24;
@@ -126,6 +144,8 @@  sub statustime {
 ############################################################################################################################
 
 sub mailsender {
+	my $msg = '';
+
 	$msg = MIME::Lite->new(
 		From	=> $mail{'SENDER'},
 		To		=> $mail{'RECIPIENT'},