mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-11 19:55:52 +02:00
Forward Firewall: Try to implement a timeconverter for Rules. New function timeconvert should convert localtime agains gmtime.
This commit is contained in:
committed by
Michael Tremer
parent
f69ea1c7c5
commit
c773075074
@@ -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'}<br>";
|
||||
}
|
||||
#DMZ-Part
|
||||
if ($fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'ORANGE' || $checkorange eq 'on'){
|
||||
$fwdfwsettings{'config'}=$configdmz;
|
||||
@@ -577,7 +583,6 @@ END
|
||||
&Header::closebox();
|
||||
print "<br><br><div align='right'><font size='1' color='grey'>Version: $VERSION</font></div>";
|
||||
}
|
||||
|
||||
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 <<END;
|
||||
<form method="post">
|
||||
<table border='0'>
|
||||
@@ -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<br>";
|
||||
$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"<td align='center' width='100'>$weekdays   $$hash{$key}[26] - $$hash{$key}[27]</td>";
|
||||
my $from = &timeconvert($$hash{$key}[26],'2loc');
|
||||
my $to = &timeconvert($$hash{$key}[27],'2loc');;
|
||||
|
||||
print"<td align='center' width='100'>$weekdays   $from - $to</td>";
|
||||
}
|
||||
}else{
|
||||
print"<td align='center'>24/7</td>";
|
||||
|
||||
Reference in New Issue
Block a user