X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=html%2Fcgi-bin%2Fnetwork.cgi;fp=html%2Fcgi-bin%2Fnetwork.cgi;h=eee47c64a0f7ad1e3ab0d74125810908e32b7671;hp=0000000000000000000000000000000000000000;hb=72fe12a934084f7127b252bdfa3ab6d24e0bf5cb;hpb=c41c2eb41d939be04a2694a00cabb941d925e267 diff --git a/html/cgi-bin/network.cgi b/html/cgi-bin/network.cgi new file mode 100644 index 0000000000..eee47c64a0 --- /dev/null +++ b/html/cgi-bin/network.cgi @@ -0,0 +1,172 @@ +#!/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"; + +my %cgiparams=(); +my %pppsettings=(); +my %netsettings=(); +my @cgiparams=(); +my @graphs=(); +my $iface=''; +my %dhcpsettings=(); +my %dhcpinfo=(); +my $output=''; + +&Header::showhttpheaders(); + +&General::readhash("${General::swroot}/ethernet/settings", \%netsettings); + +$ENV{'QUERY_STRING'} =~ s/&//g; +@cgiparams = split(/network=/,$ENV{'QUERY_STRING'}); +$cgiparams[1] = '' unless defined $cgiparams[1]; + +if ($cgiparams[1] =~ /red/) { + &Header::openpage($Lang::tr{'network traffic graphs external'}, 1, ''); + push (@graphs, ("RED")); + push (@graphs, ('lq')); +} else { + &Header::openpage($Lang::tr{'network traffic graphs internal'}, 1, ''); + push (@graphs, ('GREEN')); + if ($netsettings{'BLUE_DEV'}) { + push (@graphs, ('BLUE')); } + if ($netsettings{'ORANGE_DEV'}) { + push (@graphs, ('ORANGE')); } +} + +&Header::openbigbox('100%', 'left'); + +foreach my $graphname (@graphs) { + + &Header::openbox('100%', 'center', "$graphname $Lang::tr{'graph'}"); + if (-e "$Header::graphdir/${graphname}-day.png") { + my $ftime = localtime((stat("$Header::graphdir/${graphname}-day.png"))[9]); + print "
$Lang::tr{'the statistics were last updated at'}: $ftime

\n"; + print ""; + print ""; + print ""; + } else { + print $Lang::tr{'no information available'}; + } + print "
\n"; + &Header::closebox(); +} + +if ($cgiparams[1] =~ /red/) { + + if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} eq "DHCP") { + + &Header::openbox('100%', 'left', "RED $Lang::tr{'dhcp configuration'}"); + if (-s "${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info") { + + &General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", \%dhcpinfo); + + my $DNS1=`echo $dhcpinfo{'DNS'} | cut -f 1 -d ,`; + my $DNS2=`echo $dhcpinfo{'DNS'} | cut -f 2 -d ,`; + + my $lsetme=0; + my $leasetime=""; + if ($dhcpinfo{'LEASETIME'} ne "") { + $lsetme=$dhcpinfo{'LEASETIME'}; + $lsetme=($lsetme/60); + if ($lsetme > 59) { + $lsetme=($lsetme/60); $leasetime=$lsetme." Hour"; + } else { + $leasetime=$lsetme." Minute"; + } + if ($lsetme > 1) { + $leasetime=$leasetime."s"; + } + } + my $rentme=0; + my $rnwltime=""; + if ($dhcpinfo{'RENEWALTIME'} ne "") { + $rentme=$dhcpinfo{'RENEWALTIME'}; + $rentme=($rentme/60); + if ($rentme > 59){ + $rentme=($rentme/60); $rnwltime=$rentme." Hour"; + } else { + $rnwltime=$rentme." Minute"; + } + if ($rentme > 1){ + $rnwltime=$rnwltime."s"; + } + } + my $maxtme=0; + my $maxtime=""; + if ($dhcpinfo{'REBINDTIME'} ne "") { + $maxtme=$dhcpinfo{'REBINDTIME'}; + $maxtme=($maxtme/60); + if ($maxtme > 59){ + $maxtme=($maxtme/60); $maxtime=$maxtme." Hour"; + } else { + $maxtime=$maxtme." Minute"; + } + if ($maxtme > 1) { + $maxtime=$maxtime."s"; + } + } + + print ""; + if ($dhcpinfo{'HOSTNAME'}) { + print "\n"; + } else { + print "\n"; + } + print < + + + + + + +
$Lang::tr{'hostname'}$dhcpinfo{'HOSTNAME'}.$dhcpinfo{'DOMAIN'}
$Lang::tr{'domain'}$dhcpinfo{'DOMAIN'}
$Lang::tr{'gateway'}$dhcpinfo{'GATEWAY'}
$Lang::tr{'primary dns'}$DNS1
$Lang::tr{'secondary dns'}$DNS2
$Lang::tr{'dhcp server'}$dhcpinfo{'DHCPSIADDR'}
$Lang::tr{'def lease time'}$leasetime
$Lang::tr{'default renewal time'}$rnwltime
$Lang::tr{'max renewal time'}$maxtime
+END + ; + } + else + { + print "$Lang::tr{'no dhcp lease'}"; + } + &Header::closebox(); + } + + if ($dhcpsettings{'ENABLE_GREEN'} eq 'on' || $dhcpsettings{'ENABLE_BLUE'} eq 'on') { + &Header::CheckSortOrder; + &Header::PrintActualLeases; + } + +} else { + + &Header::openbox('100%', 'left', $Lang::tr{'routing table entries'}); + $output = `/sbin/ip route show`; + $output = &Header::cleanhtml($output,"y"); + print "
$output
\n"; + &Header::closebox(); + + &Header::openbox('100%', 'left', $Lang::tr{'arp table entries'}); + $output = `/sbin/ip neigh show`; + $output = &Header::cleanhtml($output,"y"); + print "
$output
\n"; + &Header::closebox(); + +} + +&Header::closebigbox(); +&Header::closepage();