# JC HERITIER
# page inspired from the initial firewalllog.dat
#
-# modified for ipcop by Markus Hoffmann und Michael Winkler and for ipfire by Christian Schmidt
+# Modified for IPFire by Christian Schmidt
+# and Michael Tremer (www.ipfire.org)
use strict;
$cgiparams{'sortcolumn'} = 1;
my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
- 'Sep', 'Oct', 'Nov', 'Dec' );
+ 'Sep', 'Oct', 'Nov', 'Dec' );
my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
- $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
- $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
- $Lang::tr{'december'} );
+ $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+ $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+ $Lang::tr{'december'} );
my @now = localtime();
my $dow = $now[6];
my $start = -1;
if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'})
{
- my @temp = split(',',$ENV{'QUERY_STRING'});
- $start = $temp[0];
- $cgiparams{'MONTH'} = $temp[1];
- $cgiparams{'DAY'} = $temp[2];
+ my @temp = split(',',$ENV{'QUERY_STRING'});
+ $start = $temp[0];
+ $cgiparams{'MONTH'} = $temp[1];
+ $cgiparams{'DAY'} = $temp[2];
}
if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
!($cgiparams{'DAY'} =~ /^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/))
{
- $cgiparams{'DAY'} = $now[3];
- $cgiparams{'MONTH'} = $now[4];
+ $cgiparams{'DAY'} = $now[3];
+ $cgiparams{'MONTH'} = $now[4];
}
elsif($cgiparams{'ACTION'} eq '>>')
{
my $day = $cgiparams{'DAY'};
my $daystr='';
if ($day <= 9) {
- $daystr = " $day"; }
+ $daystr = " $day"; }
else {
- $daystr = $day;
+ $daystr = $day;
}
my $skip=0;
{
while (<FILE>)
{
- if (/(^${monthstr} ${daystr} ..:..:..) [\w\-]+ kernel:.*(IN=.*)$/) {
- $log[$lines] = $_;
- $lines++;
- }
- }
- close (FILE);
+ if (/(^${monthstr} ${daystr} ..:..:..) [\w\-]+ kernel:.*(IN=.*)$/) {
+ $log[$lines] = $_;
+ $lines++;
+ }
+ }
+ close (FILE);
}
$skip=0;
$skip=1;
}
if (!$skip) {
- while (<FILE>) {
- if (/(^${monthstr} ${daystr} ..:..:..) [\w\-]+ kernel:.*(IN=.*)$/) {
- $log[$lines] = $_;
- $lines++;
- }
- }
- close (FILE);
- }
+ while (<FILE>) {
+ if (/(^${monthstr} ${daystr} ..:..:..) [\w\-]+ kernel:.*(IN=.*)$/) {
+ $log[$lines] = $_;
+ $lines++;
+ }
+ }
+ close (FILE);
+ }
}
my $MODNAME="fwlogs";
&Header::openbigbox('100%', 'left', '', $errormessage);
if ($errormessage) {
- &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
- print "<font class='base'>$errormessage </font>\n";
- &Header::closebox();
+ &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+ print "<font class='base'>$errormessage </font>\n";
+ &Header::closebox();
}
-&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
+&Header::openbox('100%', 'left', "$Lang::tr{'settings'}");
print <<END
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
<table width='100%'>
<tr>
- <td width='10%' class='base'>$Lang::tr{'month'}: </td>
- <td width='10%'>
- <select name='MONTH'>
+ <td width='10%' class='base'>$Lang::tr{'month'}: </td>
+ <td width='10%'>
+ <select name='MONTH'>
END
;
my $month;
for ($month = 0; $month < 12; $month++)
{
- print "\t<option ";
- if ($month == $cgiparams{'MONTH'}) {
- print "selected='selected' "; }
- print "value='$month'>$longmonths[$month]</option>\n";
+ print "\t<option ";
+ if ($month == $cgiparams{'MONTH'}) {
+ print "selected='selected' "; }
+ print "value='$month'>$longmonths[$month]</option>\n";
}
print <<END
- </select>
- </td>
- <td width='10%' class='base' align='right'> $Lang::tr{'day'}: </td>
- <td width='40%'>
- <select name='DAY'>
+ </select>
+ </td>
+ <td width='10%' class='base' align='right'> $Lang::tr{'day'}: </td>
+ <td width='40%'>
+ <select name='DAY'>
END
;
for ($day = 1; $day <= 31; $day++)
{
- print "\t<option ";
- if ($day == $cgiparams{'DAY'}) {
- print "selected='selected' "; }
- print "value='$day'>$day</option>\n";
+ print "\t<option ";
+ if ($day == $cgiparams{'DAY'}) {
+ print "selected='selected' "; }
+ print "value='$day'>$day</option>\n";
}
if( $cgiparams{'pienumber'} != 0){$pienumber=$cgiparams{'pienumber'};}
</td>
<td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td>
<td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td>
-<td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+<td width='20%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
+</tr>
+<tr>
+ <td colspan='3' align='left' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td>
+ <td colspan='3' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td>
+ <td align='right'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
</tr>
</table>
-<table width='100%'>
-<tr><td width='20%' align='right' valign="center">$Lang::tr{'Number of Ports for the pie chart'}:</td>
- <td width='10%' align='left' valign="center"><input type='text' name='pienumber' value='$pienumber' size='4'></td>
- <td width='20%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td></tr>
- </table>
- </form>
+</form>
END
;
if ($sortcolumn == 1)
{
- @tabjc2 = sort { $b <=> $a } values (%tabjc);
+ @tabjc2 = sort { $b <=> $a } values (%tabjc);
}
else
{
- @tabjc2 = sort { $a <=> $b } keys (%tabjc);
+ @tabjc2 = sort { $a <=> $b } keys (%tabjc);
}
-my $colour=1;
+my $color=10;
if ($sortcolumn == 1)
{
- for ($v=0;$v<$pienumber;$v++){
- findkey($tabjc2[$v]);
- }
+ for ($v=0;$v<$pienumber;$v++){
+ findkey($tabjc2[$v]);
+ }
}
else
{
- foreach $v (@tabjc2) {
- $key[$indice] = $v;
- $value[$indice] = $tabjc{$v};
- $indice++;
- }
+ foreach $v (@tabjc2) {
+ $key[$indice] = $v;
+ $value[$indice] = $tabjc{$v};
+ $indice++;
+ }
}
my @ports;
if($cgiparams{'otherspie'} == 2 ){}
else{
- my $numothers;
- for($o=0;$o<$pienumber;$o++){
- $numothers = $numothers + $numb[$o];
- }
- $numothers = $linesjc - $numothers;
- if ($numothers > 0) {
- $ports[$pienumber]="$Lang::tr{'otherport'}";
- $numb[$pienumber] = $numothers;
- }
+ my $numothers;
+ for($o=0;$o<$pienumber;$o++){
+ $numothers = $numothers + $numb[$o];
+ }
+ $numothers = $linesjc - $numothers;
+ if ($numothers > 0) {
+ $ports[$pienumber]="$Lang::tr{'otherport'}";
+ $numb[$pienumber] = $numothers;
+ }
}
my @data = (\@ports,\@numb);
use GD::Graph::colour qw( :files );
-GD::Graph::colour::read_rgb( "/srv/web/ipfire/cgi-bin/logs.cgi/colours.txt" );
+
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
if ($showpie != 2 && $pienumber <= 50 && $pienumber != 0) {
- my $mygraph = GD::Graph::pie->new(500, 350);
- $mygraph->set(
- 'title' => '',
- 'pie_height' => 50,
- 'start_angle' => 89
- ) or warn $mygraph->error;
-
- $mygraph->set_value_font(GD::gdMediumBoldFont);
- $mygraph->set( dclrs => [ "colour1" , "colour2" , "colour3" , "colour4" , "colour5" , "colour6" , "colour7" , "colour8" , "colour9" , "colour10" ] );
- my $myimage = $mygraph->plot(\@data) or die $mygraph->error;
-
- my @filenames = glob("/srv/web/ipfire/html/fwlogs/port*.png");
- unlink(@filenames);
- my $imagerandom = rand(1000000);
- my $imagename = "/srv/web/ipfire/html/fwlogs/port$imagerandom.png";
- open(FILE,">$imagename");
- print FILE $myimage->png;
- close(FILE);
- #####################################################
- print "<table align='center'><tr><td>";
- print "<img src='/fwlogs/port$imagerandom.png'>";
- print "</td></tr></table>";
+ my $mygraph = GD::Graph::pie->new(500, 350);
+ $mygraph->set(
+ 'title' => '',
+ 'pie_height' => 50,
+ 'start_angle' => 89
+ ) or warn $mygraph->error;
+
+ $mygraph->set_value_font(GD::gdMediumBoldFont);
+ $mygraph->set( dclrs => [ "$color{'color1'}" , "$color{'color2'}" , "$color{'color3'}" , "$color{'color4'}" , "$color{'color5'}" , "$color{'color6'}" , "$color{'color7'}" , "$color{'color8'}" , "$color{'color9'}" , "$color{'color10'}" ] );
+ my $myimage = $mygraph->plot(\@data) or die $mygraph->error;
+
+ my @filenames = glob("/srv/web/ipfire/html/graphs/fwlog-port*.png");
+ unlink(@filenames);
+ my $imagerandom = rand(1000000);
+ my $imagename = "/srv/web/ipfire/html/graphs/fwlog-port$imagerandom.png";
+ open(FILE,">$imagename");
+ print FILE $myimage->png;
+ close(FILE);
+ #####################################################
+ print "<table align='center'><tr><td>";
+ print "<img src='/graphs/fwlog-port$imagerandom.png'>";
+ print "</td></tr></table>";
}
print <<END
-<TABLE WIDTH='100%'>
-<TR>
-<TD WIDTH='10%' ALIGN='CENTER' CLASS='boldbase'></TD>
-<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Port</B></TD>
-<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Count</B></TD>
-<TD WIDTH='33%' ALIGN='CENTER' CLASS='boldbase'><B>Percent</B></TD>
-</TR>
+<table width='100%' CLASS='tbl'>
+<tr>
+<th width='10%' align='center' class='boldbase'></th>
+<th width='33%' align='center' class='boldbase'><b>Port</b></th>
+<th width='33%' align='center' class='boldbase'><b>Count</b></th>
+<th width='33%' align='center' class='boldbase'><b>Percent</b></th>
+</tr>
END
;
my $total=0;
my $show=0;
-my @colour;
-my $colour1;
-my $colour2;
-my $colour3;
-my $colour4;
-my $colour5;
-my $colour6;
-my $colour7;
-my $colour8;
-my $colour9;
-my $colour10;
-
-@colour = GD::Graph::colour::_rgb("colour1");
-$colour1 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour2");
-$colour2 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour3");
-$colour3 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour4");
-$colour4 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour5");
-$colour5 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour6");
-$colour6 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour7");
-$colour7 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour8");
-$colour8 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour9");
-$colour9 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
-@colour = GD::Graph::colour::_rgb("colour10");
-$colour10 = GD::Graph::colour::rgb2hex($colour[0], $colour[1], $colour[2]);
my $s;
my $percent;
+my $col="";
+
for($s=0;$s<$lines;$s++)
{
$show++;
$percent = $value[$s] * 100 / $linesjc;
- $percent = sprintf("%.3f", $percent);
+ $percent = sprintf("%.f", $percent);
$total = $total + $value[$s];
- if ( ($colour % 10) == 1 ){print "<TR BGCOLOR='$colour1'>\n";}
- if ( ($colour % 10) == 2 ){print "<TR BGCOLOR='$colour2'>\n";}
- if ( ($colour % 10) == 3 ){print "<TR BGCOLOR='$colour3'>\n";}
- if ( ($colour % 10) == 4 ){print "<TR BGCOLOR='$colour4'>\n";}
- if ( ($colour % 10) == 5 ){print "<TR BGCOLOR='$colour5'>\n";}
- if ( ($colour % 10) == 6 ){print "<TR BGCOLOR='$colour6'>\n";}
- if ( ($colour % 10) == 7 ){print "<TR BGCOLOR='$colour7'>\n";}
- if ( ($colour % 10) == 8 ){print "<TR BGCOLOR='$colour8'>\n";}
- if ( ($colour % 10) == 9 ){print "<TR BGCOLOR='$colour9'>\n";}
- if ( ($colour % 10) == 0 ){print "<TR BGCOLOR='$colour10'>\n";}
-
- $colour++;
- print "<TD ALIGN='CENTER'><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='details'></form></TD>";
- print "<TD ALIGN='CENTER'>$key[$s]</TD>";
- print "<TD ALIGN='CENTER'>$value[$s]</TD>";
- print "<TD ALIGN='CENTER'>$percent</TD>";
- print "</TR>";
+ if ( ($color % 10) == 1 ){print "<tr>"; $col="bgcolor='$color{'color1'}'";}
+ if ( ($color % 10) == 2 ){print "<tr>"; $col="bgcolor='$color{'color2'}'";}
+ if ( ($color % 10) == 3 ){print "<tr>"; $col="bgcolor='$color{'color3'}'";}
+ if ( ($color % 10) == 4 ){print "<tr>"; $col="bgcolor='$color{'color4'}'";}
+ if ( ($color % 10) == 5 ){print "<tr>"; $col="bgcolor='$color{'color5'}'";}
+ if ( ($color % 10) == 6 ){print "<tr>"; $col="bgcolor='$color{'color6'}'";}
+ if ( ($color % 10) == 7 ){print "<tr>"; $col="bgcolor='$color{'color7'}'";}
+ if ( ($color % 10) == 8 ){print "<tr>"; $col="bgcolor='$color{'color8'}'";}
+ if ( ($color % 10) == 9 ){print "<tr>"; $col="bgcolor='$color{'color9'}'";}
+ if ( ($color % 10) == 0 ){print "<tr>"; $col="bgcolor='$color{'color10'}'";}
+
+ $color++;
+ print "<td align='center' $col><form method='post' action='showrequestfromport.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='port' value='$key[$s]'> <input type='submit' value='details'></form></td>";
+ print "<td align='center' $col>$key[$s]</td>";
+ print "<td align='center' $col>$value[$s]</td>";
+ print "<td align='center' $col>$percent</td>";
+ print "</tr>";
}
if($cgiparams{'otherspie'} == 2 ){}
else{
-if ( ($colour % 10) == 1 ){print "<TR BGCOLOR='$colour1'>\n";}
-if ( ($colour % 10) == 2 ){print "<TR BGCOLOR='$colour2'>\n";}
-if ( ($colour % 10) == 3 ){print "<TR BGCOLOR='$colour3'>\n";}
-if ( ($colour % 10) == 4 ){print "<TR BGCOLOR='$colour4'>\n";}
-if ( ($colour % 10) == 5 ){print "<TR BGCOLOR='$colour5'>\n";}
-if ( ($colour % 10) == 6 ){print "<TR BGCOLOR='$colour6'>\n";}
-if ( ($colour % 10) == 7 ){print "<TR BGCOLOR='$colour7'>\n";}
-if ( ($colour % 10) == 8 ){print "<TR BGCOLOR='$colour8'>\n";}
-if ( ($colour % 10) == 9 ){print "<TR BGCOLOR='$colour9'>\n";}
-if ( ($colour % 10) == 0 ){print "<TR BGCOLOR='$colour10'>\n";}
-
+if ( ($color % 10) == 1 ){print "<tr>"; $col="bgcolor='$color{'color1'}'";}
+if ( ($color % 10) == 2 ){print "<tr>"; $col="bgcolor='$color{'color2'}'";}
+if ( ($color % 10) == 3 ){print "<tr>"; $col="bgcolor='$color{'color3'}'";}
+if ( ($color % 10) == 4 ){print "<tr>"; $col="bgcolor='$color{'color4'}'";}
+if ( ($color % 10) == 5 ){print "<tr>"; $col="bgcolor='$color{'color5'}'";}
+if ( ($color % 10) == 6 ){print "<tr>"; $col="bgcolor='$color{'color6'}'";}
+if ( ($color % 10) == 7 ){print "<tr>"; $col="bgcolor='$color{'color7'}'";}
+if ( ($color % 10) == 8 ){print "<tr>"; $col="bgcolor='$color{'color8'}'";}
+if ( ($color % 10) == 9 ){print "<tr>"; $col="bgcolor='$color{'color9'}'";}
+if ( ($color % 10) == 0 ){print "<tr>"; $col="bgcolor='$color{'color10'}'";}
+
+if ( $linesjc ne "0")
+{
my $dif;
$dif = $linesjc - $total;
$percent = $dif * 100 / $linesjc;
-$percent = sprintf("%.3f", $percent);
+$percent = sprintf("%.f", $percent);
print <<END
-<TD ALIGN='CENTER'></TD>
-<TD ALIGN='CENTER'>$Lang::tr{'otherport'}</TD>
-<TD ALIGN='CENTER'>$dif</TD>
-<TD ALIGN='CENTER'>$percent</TD>
-</TR>
+<td align='center' $col></td>
+<td align='center' $col>$Lang::tr{'otherport'}</td>
+<td align='center' $col>$dif</td>
+<td align='center' $col>$percent</td>
+</tr>
END
;
}
+}
print <<END
-</TABLE>
+</table>
END
;
}
}
sub checkversion {
- #Automatic Updates is disabled
- return "0","0";
- }
+ #Automatic Updates is disabled
+ return "0","0";
+ }