#!/usr/bin/perl # # SmoothWall CGIs # # This code is distributed under the terms of the GPL # # (c) The SmoothWall Team # use strict; # enable only the following on debugging purpose use warnings; use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; require '/var/ipfire/net-traffic/net-traffic-lib.pl'; my %cgiparams; my %pppsettings; my %netsettings; &General::readhash("${General::swroot}/ppp/settings", \%pppsettings); &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); my @wday = ($Lang::tr{'wday1'}, $Lang::tr{'wday2'}, $Lang::tr{'wday3'}, $Lang::tr{'wday4'}, $Lang::tr{'wday5'}, $Lang::tr{'wday6'}, $Lang::tr{'wday7'}); my ($s, $min, $h, $d, $m,$y) = localtime(time); $y+=1900; $m+=1; $m = $m < 10 ? $m = "0".$m : $m; $cgiparams{'MONTH'} = $m; &Header::getcgihash(\%cgiparams); $cgiparams{'YEAR'} = $y; &Header::getcgihash(\%cgiparams); &Header::showhttpheaders(); my %selectYear; $selectYear{'YEAR'}{'2007'} = ''; $selectYear{'YEAR'}{'2008'} = ''; $selectYear{'YEAR'}{'2009'} = ''; $selectYear{'YEAR'}{'2010'} = ''; $selectYear{'YEAR'}{'2011'} = ''; $selectYear{'YEAR'}{'2012'} = ''; $selectYear{'YEAR'}{'????'} = ''; $selectYear{'YEAR'}{$cgiparams{'YEAR'}} = 'selected=\'selected\''; my %selected; $selected{'MONTH'}{'01'} = ''; $selected{'MONTH'}{'02'} = ''; $selected{'MONTH'}{'03'} = ''; $selected{'MONTH'}{'04'} = ''; $selected{'MONTH'}{'05'} = ''; $selected{'MONTH'}{'06'} = ''; $selected{'MONTH'}{'07'} = ''; $selected{'MONTH'}{'08'} = ''; $selected{'MONTH'}{'09'} = ''; $selected{'MONTH'}{'10'} = ''; $selected{'MONTH'}{'11'} = ''; $selected{'MONTH'}{'12'} = ''; $selected{'MONTH'}{'??'} = ''; $selected{'MONTH'}{$cgiparams{'MONTH'}} = 'selected=\'selected\''; &Header::openpage($Lang::tr{'sstraffic'}, 1, ''); &Header::openbigbox('100%', 'left'); &Header::openbox('100%', 'left', $Lang::tr{'settingsc'}); print <
$Lang::tr{'selecttraffic'}
END &Header::closebox(); &Header::openbox('100%', 'left', $Lang::tr{'traffics'}); my $dateWidth = '20%'; my $netWidth = '34%'; my $inOutWidth = '17%'; # 4 networks if ($netsettings{'CONFIG_TYPE'} =~ /^(5|7)$/) { $dateWidth = '12%'; $netWidth = '22%'; $inOutWidth = '11%'; } # 3 networks if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|4|6)$/) { $dateWidth = '16%'; $netWidth = '28%'; $inOutWidth = '14%'; } print < $Lang::tr{'trafficgreen'} END if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) { print "$Lang::tr{'trafficblue'}"; } if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) { print "$Lang::tr{'trafficorange'}"; } print <$Lang::tr{'trafficred'} END if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) { print ""; print ""; } if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) { print ""; print ""; } print <$Lang::tr{'trafficin'} END my $total_blue_in=0; my $total_blue_out=0; my $total_green_in=0; my $total_green_out=0; my $total_orange_in=0; my $total_orange_out=0; my $total_red_in=0; my $total_red_out=0; my $lines=0; my $displayMode = "daily"; my $startMonth = $cgiparams{'MONTH'}; my $endMonth = $cgiparams{'MONTH'}; if ($cgiparams{'MONTH'} eq '??') { $displayMode = "monthly"; $startMonth = '01'; $endMonth = '12'; } my $start = "$cgiparams{'YEAR'}$startMonth"."01"; my $end = "$cgiparams{'YEAR'}$endMonth"."32"; my %allDaysBytes = (); my @allDays = &Traffic::calcTraffic(\%allDaysBytes,$start,$end, $displayMode); foreach (@allDays) { $total_green_in += $allDaysBytes{$_}{${Traffic::green_in}}; $total_green_out += $allDaysBytes{$_}{${Traffic::green_out}}; if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) { $total_blue_in += $allDaysBytes{$_}{${Traffic::blue_in}}; $total_blue_out += $allDaysBytes{$_}{${Traffic::blue_out}}; } if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) { $total_orange_in += $allDaysBytes{$_}{${Traffic::orange_in}}; $total_orange_out += $allDaysBytes{$_}{${Traffic::orange_out}}; } $total_red_in += $allDaysBytes{$_}{${Traffic::red_in}}; $total_red_out += $allDaysBytes{$_}{${Traffic::red_out}}; if ($lines % 2) { print ""; } else { print ""; } printf "\n", $allDaysBytes{$_}{'Day'}; printf "\n", ($allDaysBytes{$_}{${Traffic::green_in}}/1048576); printf "\n", ($allDaysBytes{$_}{${Traffic::green_out}}/1048576); if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) { printf "\n", ($allDaysBytes{$_}{${Traffic::blue_in}}/1048576); printf "\n", ($allDaysBytes{$_}{${Traffic::blue_out}}/1048576); } if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) { printf "\n", ($allDaysBytes{$_}{${Traffic::orange_in}}/1048576); printf "\n", ($allDaysBytes{$_}{${Traffic::orange_out}}/1048576); } printf "\n", ($allDaysBytes{$_}{${Traffic::red_in}}/1048576); printf "\n", ($allDaysBytes{$_}{${Traffic::red_out}}/1048576); $lines++; } $total_green_in=sprintf("%.2f", ($total_green_in/1048576)); $total_green_out=sprintf("%.2f", ($total_green_out/1048576)); $total_blue_in=sprintf("%.2f", ($total_blue_in/1048576)); $total_blue_out=sprintf("%.2f", ($total_blue_out/1048576)); $total_orange_in=sprintf("%.2f", ($total_orange_in/1048576)); $total_orange_out=sprintf("%.2f", ($total_orange_out/1048576)); $total_red_in=sprintf("%.2f", ($total_red_in/1048576)); $total_red_out=sprintf("%.2f", ($total_red_out/1048576)); if ($lines % 2) {print ""; } else {print ""; } print <$Lang::tr{'trafficsum'} END if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) { print ""; print ""; } if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) { print ""; print ""; } print <$total_red_in MB
$Lang::tr{'trafficdate'} $Lang::tr{'trafficin'} $Lang::tr{'trafficout'}$Lang::tr{'trafficin'}$Lang::tr{'trafficout'}$Lang::tr{'trafficin'}$Lang::tr{'trafficout'}$Lang::tr{'trafficout'}
%s%.3f%.3f%.3f%.3f%.3f%.3f%.3f%.3f
$total_green_in MB $total_green_out MB$total_blue_in MB$total_blue_out MB$total_orange_in MB$total_orange_out MB$total_red_out MB
END &Header::closebox(); &Header::closebigbox(); &Header::closepage();