From c773075074acff71cb574f67fd450f86bf7f6dc1 Mon Sep 17 00:00:00 2001 From: Alexander Marx Date: Thu, 7 Mar 2013 06:35:03 +0100 Subject: [PATCH] Forward Firewall: Try to implement a timeconverter for Rules. New function timeconvert should convert localtime agains gmtime. --- html/cgi-bin/forwardfw.cgi | 62 +++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/html/cgi-bin/forwardfw.cgi b/html/cgi-bin/forwardfw.cgi index fb0ef5900..1caa34869 100755 --- a/html/cgi-bin/forwardfw.cgi +++ b/html/cgi-bin/forwardfw.cgi @@ -74,7 +74,7 @@ my %ipsecsettings=(); my %aliases=(); my %optionsfw=(); -my $VERSION='0.9.8.2'; +my $VERSION='0.9.8.3'; my $color; my $confignet = "${General::swroot}/fwhosts/customnetworks"; my $confighost = "${General::swroot}/fwhosts/customhosts"; @@ -143,6 +143,12 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule') if( $fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'IPFire' && $fwdfwsettings{'grp2'} eq 'ipfire'){ $errormessage.=$Lang::tr{'fwdfw err same'}; } + #Konvert timeframe if defined + if ($fwdfwsettings{'TIME'} eq 'ON'){ + $fwdfwsettings{'TIME_FROM'} = &timeconvert($fwdfwsettings{'TIME_FROM'},'2utc'); + $fwdfwsettings{'TIME_TO'} = &timeconvert($fwdfwsettings{'TIME_TO'},'2utc'); + print "NACHHER: $fwdfwsettings{'TIME_FROM'} - $fwdfwsettings{'TIME_TO'}
"; + } #DMZ-Part if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'ORANGE' || $checkorange eq 'on'){ $fwdfwsettings{'config'}=$configdmz; @@ -577,7 +583,6 @@ END &Header::closebox(); print "

Version: $VERSION
"; } - sub changerule { my $oldchain=shift; @@ -1386,6 +1391,8 @@ sub newrule $checked{'TIME_FRI'}{$fwdfwsettings{'TIME_FRI'}} = 'CHECKED'; $checked{'TIME_SAT'}{$fwdfwsettings{'TIME_SAT'}} = 'CHECKED'; $checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED'; + $fwdfwsettings{'TIME_FROM'} = &timeconvert($fwdfwsettings{'TIME_FROM'},''); + $fwdfwsettings{'TIME_TO'} = &timeconvert($fwdfwsettings{'TIME_TO'},''); $selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected'; $selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected'; $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected'; @@ -1478,7 +1485,8 @@ sub newrule } } &Header::openbox('100%', 'left', $Lang::tr{'fwdfw addrule'}); - + $fwdfwsettings{'TIME_FROM'} = &timeconvert($fwdfwsettings{'TIME_FROM'},''); + $fwdfwsettings{'TIME_TO'} = &timeconvert($fwdfwsettings{'TIME_TO'},''); print < @@ -1990,6 +1998,49 @@ sub saverule } } } +sub timeconvert +{ + my $orgtime=shift; + my $type=shift; + my $newtime; + my ($hour,$min) = split (":", $orgtime); + my @locar = localtime(time); + my @gmtar = gmtime(); + my $oldtime = $hour*60 + $min; + my $gmt = $gmtar[2]*60 + $gmtar[1]; + my $loc = $locar[2]*60 + $locar[1]; + my $diff; + my $newtime; + if ($gmt > $loc) + { + $diff = $gmt - $loc; + if ($type eq '2utc') + { + print"umrechnen nach UTC
"; + $newtime = $oldtime + $diff; + }else{ + $newtime = $oldtime - $diff; + } + }else{ + $diff = $loc - $gmt; + if ($type eq '2utc') + { + $newtime = $oldtime - $diff; + }else{ + $newtime = $oldtime + $diff; + } + } + if ($newtime < 0 ){ + $newtime += 1440; + } + if ($newtime >= 1440){ + $newtime -= 1440; + } + my $newhour =sprintf"%02d", $newtime/60; + my $newmin = sprintf"%02d",$newtime % 60; + $newtime = "$newhour:$newmin"; + return $newtime; +} sub validremark { # Checks a hostname against RFC1035 @@ -2170,7 +2221,10 @@ END if($$hash{$key}[25] ne ''){push (@days,$Lang::tr{'fwdfw wd_sun'});} my $weekdays=join(",",@days); if (@days){ - print""; + my $from = &timeconvert($$hash{$key}[26],'2loc'); + my $to = &timeconvert($$hash{$key}[27],'2loc');; + + print""; } }else{ print""; -- 2.39.2
$weekdays   $$hash{$key}[26] - $$hash{$key}[27]$weekdays   $from - $to24/7