###############################################################################
use strict;
+use Time::Local;
no warnings 'uninitialized';
# enable only the following on debugging purpose
#get time if defined
if($$hash{$key}[18] eq 'ON'){
+ my ($time1,$time2,$daylight);
+ my $daylight=$$hash{$key}[28];
+ $time1=&get_time($$hash{$key}[26],$daylight);
+ $time2=&get_time($$hash{$key}[27],$daylight);
if($$hash{$key}[19] ne ''){push (@timeframe,"Mon");}
if($$hash{$key}[20] ne ''){push (@timeframe,"Tue");}
if($$hash{$key}[21] ne ''){push (@timeframe,"Wed");}
if($$hash{$key}[24] ne ''){push (@timeframe,"Sat");}
if($$hash{$key}[25] ne ''){push (@timeframe,"Sun");}
$TIME=join(",",@timeframe);
- $TIMEFROM="--timestart $$hash{$key}[26] ";
- $TIMETILL="--timestop $$hash{$key}[27] ";
+
+ $TIMEFROM="--timestart $time1 ";
+ $TIMETILL="--timestop $time2 ";
$TIME="-m time --weekdays $TIME $TIMEFROM $TIMETILL";
}
if ($MODE eq '1'){
undef $TIMETILL;
}
}
+sub get_time
+{
+ my $val=shift;
+ my $val1=shift;
+ my $time;
+ my $minutes;
+ my $ruletime;
+ $minutes = &utcmin($val);
+ $ruletime = $minutes + &time_get_utc($val);
+ if ($ruletime < 0){$ruletime +=1440;}
+ if ($ruletime > 1440){$ruletime -=1440;}
+ $time=sprintf "%02d:%02d", $ruletime / 60, $ruletime % 60;
+ return $time;
+}
+sub time_get_utc
+{
+ # Calculates the UTCtime from a given time
+ my $val=shift;
+ my @localtime=localtime(time);
+ my @gmtime=gmtime(time);
+ my $diff = ($gmtime[2]*60+$gmtime[1]%60)-($localtime[2]*60+$localtime[1]%60);
+ return $diff;
+}
+sub utcmin
+{
+ my $ruletime=shift;
+ my ($hrs,$min) = split(":",$ruletime);
+ my $newtime = $hrs*60+$min;
+ return $newtime;
+}
sub p2pblock
{
my $P2PSTRING;
my %aliases=();
my %optionsfw=();
-my $VERSION='0.9.8.3';
+my $VERSION='0.9.8.4';
my $color;
my $confignet = "${General::swroot}/fwhosts/customnetworks";
my $confighost = "${General::swroot}/fwhosts/customhosts";
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;
$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';
+
#check if update and get values
if($fwdfwsettings{'updatefwrule'} eq 'on' || $fwdfwsettings{'copyfwrule'} eq 'on' && !$errormessage){
&General::readhasharray("$config", \%hash);
}
}
&Header::openbox('100%', 'left', $Lang::tr{'fwdfw addrule'});
- $fwdfwsettings{'TIME_FROM'} = &timeconvert($fwdfwsettings{'TIME_FROM'},'');
- $fwdfwsettings{'TIME_TO'} = &timeconvert($fwdfwsettings{'TIME_TO'},'');
+ if ($fwdfwsettings{'TIME'} eq 'ON'){
+ $fwdfwsettings{'TIME_FROM'} = &timeconvert($fwdfwsettings{'TIME_FROM'},'');
+ $fwdfwsettings{'TIME_TO'} = &timeconvert($fwdfwsettings{'TIME_TO'},'');
+ }
print <<END;
<form method="post">
<table border='0'>
}
}
}
-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
if($$hash{$key}[25] ne ''){push (@days,$Lang::tr{'fwdfw wd_sun'});}
my $weekdays=join(",",@days);
if (@days){
- my $from = &timeconvert($$hash{$key}[26],'2loc');
- my $to = &timeconvert($$hash{$key}[27],'2loc');;
-
- print"<td align='center' width='100'>$weekdays   $from - $to</td>";
+ print"<td align='center' width='100'>$weekdays   $$hash{$key}[26] - $$hash{$key}[27] </td>";
}
}else{
print"<td align='center'>24/7</td>";