]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/network.cgi
Upgraded hostap because of new madwifi hal release
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / network.cgi
index eee47c64a0f7ad1e3ab0d74125810908e32b7671..3543780578de383f85e1148586fe551cf808c01c 100644 (file)
@@ -1,28 +1,42 @@
 #!/usr/bin/perl
-#
-# SmoothWall CGIs
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) The SmoothWall Team
-#
-#
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 use strict;
 
 # enable only the following on debugging purpose
-use warnings;
-use CGI::Carp 'fatalsToBrowser';
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
 
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
+require "${General::swroot}/graphs.pl";
 
 my %cgiparams=();
 my %pppsettings=();
 my %netsettings=();
 my @cgiparams=();
 my @graphs=();
+my @pings=();
+my @wireless=();
 my $iface='';
 my %dhcpsettings=();
 my %dhcpinfo=();
@@ -38,21 +52,67 @@ $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 {
+       if ($netsettings{'RED_TYPE'} ne 'PPPOE') {
+           if ($netsettings{'RED_DEV'} ne $netsettings{'GREEN_DEV'}) {
+               push (@graphs, ($netsettings{'RED_DEV'}));
+           }
+       } else {
+           push (@graphs, "ppp0");
+       }
+       if (-e "/var/log/rrd/collectd/localhost/interface/if_octets-ipsec0.rrd") {push (@graphs, ("ipsec0"));}
+}elsif ($cgiparams[1] =~ /other/) {
+       &Header::openpage($Lang::tr{'network traffic graphs others'}, 1, '');
+       my @pinggraphs = `ls -dA /var/log/rrd/collectd/localhost/ping/*`;
+       foreach (@pinggraphs){
+               $_ =~ /(.*)\/ping\/ping-(.*)\.rrd/;
+               push(@pings,$2);
+       }
+       push (@graphs, ("fwhits"));
+
+}else {
        &Header::openpage($Lang::tr{'network traffic graphs internal'}, 1, '');
-       push (@graphs, ('GREEN'));
+       push (@graphs, ($netsettings{'GREEN_DEV'}));
        if ($netsettings{'BLUE_DEV'}) {
-               push (@graphs, ('BLUE')); }
+               push (@graphs, ($netsettings{'BLUE_DEV'})); }
        if ($netsettings{'ORANGE_DEV'}) {
-               push (@graphs, ('ORANGE')); }
+               push (@graphs, ($netsettings{'ORANGE_DEV'})); }
+       my @wirelessgraphs = `ls -dA /var/log/rrd/collectd/localhost/wireless*`;
+       foreach (@wirelessgraphs){
+               $_ =~ /(.*)\/wireless-(.*)/;
+               push(@wireless,$2);
+       }
 }
 
 &Header::openbigbox('100%', 'left');
 
+foreach my $graphname (@pings) {
+
+  if ($graphname eq "gateway" )
+  {  &Graphs::updatepinggraph("day","gateway"); }
+  else
+  {  &Graphs::updatepinggraph("day","$graphname"); }
+
+       &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 "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
+               print "<a href='/cgi-bin/graphs.cgi?graph=$graphname&graph=ping'>";
+               print "<img alt='' src='/graphs/${graphname}-day.png' border='0' />";
+               print "</a>";
+       } else {
+               print $Lang::tr{'no information available'};
+       }
+       print "<br />\n";
+       &Header::closebox();
+}
+
 foreach my $graphname (@graphs) {
 
+  if ($graphname eq "fwhits" )
+  {  &Graphs::updatefwhitsgraph("day");  }
+  else
+  {  &Graphs::updateifgraph($graphname, "day");  }
+
        &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]);
@@ -67,9 +127,27 @@ foreach my $graphname (@graphs) {
        &Header::closebox();
 }
 
+foreach my $graphname (@wireless) {
+
+       &Graphs::wireless("day",$graphname);
+       
+       &Header::openbox('100%', 'center', "wireless $graphname $Lang::tr{'graph'}");
+       if (-e "$Header::graphdir/wireless-${graphname}-day.png") {
+               my $ftime = localtime((stat("$Header::graphdir/wireless-${graphname}-day.png"))[9]);
+               print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
+               print "<a href='/cgi-bin/graphs.cgi?graph=wireless&graph=$graphname'>";
+               print "<img alt='' src='/graphs/wireless-${graphname}-day.png' border='0' />";
+               print "</a>";
+       } else {
+               print $Lang::tr{'no information available'};
+       }
+       print "<br />\n";
+       &Header::closebox();
+}
+
 if ($cgiparams[1] =~ /red/) {
        
-       if ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/  && $netsettings{'RED_TYPE'} eq "DHCP") {
+       if ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/  && $netsettings{'RED_TYPE'} eq "DHCP") {
 
                &Header::openbox('100%', 'left', "RED $Lang::tr{'dhcp configuration'}");
                if (-s "${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info") {