From: maniacikarus Date: Wed, 6 Jun 2007 17:09:21 +0000 (+0000) Subject: Viele CGIs geaendert, einige Proxy Dateien hinzugefuegt, iptables aus dem menu geschm... X-Git-Tag: v2.3-beta1~647 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=268292e730717ad07349ea74e3b10ed3a3902102 Viele CGIs geaendert, einige Proxy Dateien hinzugefuegt, iptables aus dem menu geschmissen git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@612 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- diff --git a/config/menu/20-status.menu b/config/menu/20-status.menu index 37cd984af8..d81cefdadb 100644 --- a/config/menu/20-status.menu +++ b/config/menu/20-status.menu @@ -60,9 +60,9 @@ 'title' => "$Lang::tr{'sstraffic'}", 'enabled' => 1, }; - $substatus->{'73.iptables'} = { - 'caption' => $Lang::tr{'iptable rules'}, - 'uri' => '/cgi-bin/iptables.cgi', - 'title' => "$Lang::tr{'iptable rules'}", + $substatus->{'73.qos'} = { + 'caption' => $Lang::tr{'qos graphs'}, + 'uri' => '/cgi-bin/qosgraphs.cgi', + 'title' => "$Lang::tr{'qos graphs'}", 'enabled' => 1, }; diff --git a/config/proxy/auth/msnt_auth b/config/proxy/auth/msnt_auth new file mode 100644 index 0000000000..bbc56e879c Binary files /dev/null and b/config/proxy/auth/msnt_auth differ diff --git a/config/proxy/auth/ncsa_auth b/config/proxy/auth/ncsa_auth new file mode 100644 index 0000000000..393a7c1ed1 Binary files /dev/null and b/config/proxy/auth/ncsa_auth differ diff --git a/config/proxy/auth/ntlm_auth b/config/proxy/auth/ntlm_auth new file mode 100644 index 0000000000..b65889c1e4 Binary files /dev/null and b/config/proxy/auth/ntlm_auth differ diff --git a/config/proxy/auth/squid_ldap_auth b/config/proxy/auth/squid_ldap_auth new file mode 100644 index 0000000000..93d54a5478 Binary files /dev/null and b/config/proxy/auth/squid_ldap_auth differ diff --git a/config/proxy/auth/squid_ldap_group b/config/proxy/auth/squid_ldap_group new file mode 100644 index 0000000000..23421bead4 Binary files /dev/null and b/config/proxy/auth/squid_ldap_group differ diff --git a/config/proxy/auth/squid_radius_auth b/config/proxy/auth/squid_radius_auth new file mode 100644 index 0000000000..8e5f923423 Binary files /dev/null and b/config/proxy/auth/squid_radius_auth differ diff --git a/config/proxy/proxy.pac b/config/proxy/proxy.pac new file mode 100644 index 0000000000..71c47f902c --- /dev/null +++ b/config/proxy/proxy.pac @@ -0,0 +1,3 @@ +function FindProxyForURL(url, host) +{ +} diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index ae67f3119b..e43accb52f 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1311,6 +1311,7 @@ srv/web/ipfire/cgi-bin/pppsetup.cgi srv/web/ipfire/cgi-bin/proxy.cgi srv/web/ipfire/cgi-bin/proxygraphs.cgi srv/web/ipfire/cgi-bin/qos.cgi +srv/web/ipfire/cgi-bin/qosgraph.cgi srv/web/ipfire/cgi-bin/remote.cgi srv/web/ipfire/cgi-bin/services.cgi #srv/web/ipfire/cgi-bin/shaping.cgi diff --git a/doc/language_issues.de b/doc/language_issues.de index af9adb6e58..cfc26ea484 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -363,3 +363,4 @@ WARNING: translation string unused: written sectors WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: qos graphs diff --git a/doc/language_issues.en b/doc/language_issues.en index 61e52904e7..3001d4e7f7 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -366,3 +366,4 @@ WARNING: translation string unused: weekly firewallhits WARNING: translation string unused: written sectors WARNING: translation string unused: year WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: qos graphs diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index e582b4e572..e0d8452bbe 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -2756,9 +2756,34 @@ END ; if ($proxysettings{'ENABLE'} eq 'on') { + print FILE "if (\n"; + print FILE " (isInNet(myIpAddress(), \"$netsettings{'GREEN_NETADDRESS'}\", \"$netsettings{'GREEN_NETMASK'}\"))"; + + undef @templist; + if (-e "$acl_src_subnets") { + open(SUBNETS,"$acl_src_subnets"); + @templist = ; + close(SUBNETS); + } + + foreach (@templist) + { + @temp = split(/\//); + if ( + ($temp[0] ne $netsettings{'GREEN_NETADDRESS'}) && ($temp[1] ne $netsettings{'GREEN_NETMASK'}) && + ($temp[0] ne $netsettings{'BLUE_NETADDRESS'}) && ($temp[1] ne $netsettings{'BLUE_NETMASK'}) + ) + { + chomp $temp[1]; + print FILE " ||\n (isInNet(myIpAddress(), \"$temp[0]\", \"$temp[1]\"))"; + } + } + + print FILE "\n"; + print FILE <; - close FILE; - open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile"; - @subclasses = ; - close FILE; - &Header::openbox('100%', 'left', 'QoS Graphen'); - print < Diese Seite braucht je nach Geschwindigkeit des Computers laenger zum Laden. - Klasse: -END -; - foreach $classentry (sort @classes) - { - @classline = split( /\;/, $classentry ); - $qossettings{'CLASS'}=$classline[1]; - print < -END -; - } - print < -END -; - &Header::closebox(); - foreach $classentry (sort @classes) - { - @classline = split( /\;/, $classentry ); - $qossettings{'DEV'}=$classline[0]; - $qossettings{'CLASS'}=$classline[1]; - &gengraph($qossettings{'DEV'},$qossettings{'CLASS'}); - print "\n"; - } -print < -END -; - &Header::closebigbox(); - &Header::closepage(); - exit -} elsif ($qossettings{'ACTION'} eq 'Parentklasse hinzufuegen') { &parentclass(); @@ -704,9 +634,8 @@ END
-
- -
+ + END ; @@ -728,20 +657,12 @@ if ( ($qossettings{'DEFCLASS_INC'} eq '') || ($qossettings{'DEFCLASS_OUT'} eq '' } &Header::openbox('100%', 'center', $Lang::tr{'info'}); -&overviewgraph($qossettings{'RED_DEV'}); -&overviewgraph($qossettings{'IMQ_DEV'}); print <  Unterklasse hinzufuegen |  Regel hinzufuegen |  Bearbeiten |  Loeschen   TOS-Bits:  0 - Deaktiviert | 8 - Minimale Verzoegerung | 4 - Maximaler Durchsatz | 2 - Maximale Zuverlaessigkeit | 1 - Minimale Kosten   END ; -if (( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'RED_DEV'}.png") && ( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png")) { - print < - -END -;} print "\t"; &Header::closebox(); @@ -1144,7 +1065,6 @@ sub showclasses { @classline = split( /\;/, $classentry ); if ( $classline[0] eq $qossettings{'DEV'} ) { - gengraph($qossettings{'DEV'},$classline[1]); &Header::openbox('100%', 'center', "Klasse: $classline[1]"); print < @@ -1348,10 +1268,6 @@ END } } } - - if ( -e "/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png") { - print < END ; } @@ -1400,7 +1316,6 @@ END } } } -} sub expert { @@ -1500,86 +1415,3 @@ sub validsubclass { } } } - -sub gengraph { - $qossettings{'DEV'} = shift; - $qossettings{'CLASS'} = shift; - my $ERROR=""; - if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) { - $qossettings{'CLASSPRFX'} = '1'; - } else { - $qossettings{'CLASSPRFX'} = '2'; - } - my $color=random_hex_color(6); - - RRDs::graph ("/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png", - "--start", "-3240", "-aPNG", "-i", "-z", - "--alt-y-grid", "-w 600", "-h 150", "-r", - "--color", "SHADEA#EAE9EE", - "--color", "SHADEB#EAE9EE", - "--color", "BACK#FFFFFF", - "-t $qossettings{'CLASS'} ($qossettings{'DEV'})", - "DEF:pkts=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:pkts:AVERAGE", - "DEF:dropped=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:dropped:AVERAGE", - "DEF:overlimits=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:overlimits:AVERAGE", - "AREA:pkts$color:packets", - "GPRINT:pkts:LAST:total packets\\:%8.3lf %s packets\\j", - "LINE3:dropped#FF0000:dropped", - "GPRINT:dropped:LAST:dropped packets\\:%8.3lf %s packets\\j", - "LINE3:overlimits#0000FF:overlimits", - "GPRINT:overlimits:LAST:overlimits\\:%8.3lf %s packets\\j", - ); - $ERROR = RRDs::error; - #print "$ERROR"; -} - -sub overviewgraph { - $qossettings{'DEV'} = shift; - if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) { - $qossettings{'CLASSPRFX'} = '1'; - } else { - $qossettings{'CLASSPRFX'} = '2'; - } - my $ERROR=""; - my $count="1"; - my $color="#000000"; - my @command=("/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'DEV'}.png", - "--start", "-3240", "-aPNG", "-i", "-z", - "--alt-y-grid", "-w 600", "-h 150", "-r", - "--color", "SHADEA#EAE9EE", - "--color", "SHADEB#EAE9EE", - "--color", "BACK#FFFFFF", - "-t Auslastung auf ($qossettings{'DEV'})" - ); - open( FILE, "< $classfile" ) or die "Unable to read $classfile"; - @classes = ; - close FILE; - foreach $classentry (sort @classes) - { - @classline = split( /\;/, $classentry ); - if ( $classline[0] eq $qossettings{'DEV'} ) - { - $color=random_hex_color(6); - push(@command, "DEF:$classline[1]=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bits:AVERAGE"); - - if ($count eq "1") { - push(@command, "AREA:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j"); - } else { - push(@command, "STACK:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j"); - } - $count++; - } - } - RRDs::graph (@command); - $ERROR = RRDs::error; - #print "$ERROR"; -} - -sub random_hex_color { - my $size = shift; - $size = 6 if $size !~ /^3|6$/; - my @hex = ( 0 .. 9, 'a' .. 'f' ); - my @color; - push @color, @hex[rand(@hex)] for 1 .. $size; - return join('', '#', @color); -} diff --git a/html/cgi-bin/qosgraph.cgi b/html/cgi-bin/qosgraph.cgi new file mode 100644 index 0000000000..9a850146a0 --- /dev/null +++ b/html/cgi-bin/qosgraph.cgi @@ -0,0 +1,237 @@ +#!/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 "${General::swroot}/graphs.pl"; + +#workaround to suppress a warning when a variable is used only once +my @dummy = ( ${Header::colourred} ); +undef (@dummy); + +my %qossettings = (); +my %checked = (); +my %netsettings = (); +my $message = ''; +my $errormessage = ""; +my $c = ""; +my $direntry = ""; +my $classentry = ""; +my $subclassentry = ""; +my $l7ruleentry = ""; +my $portruleentry = ""; +my $tosruleentry = ""; +my @tmp = (); +my @classes = (); +my @subclasses = (); +my @l7rules = (); +my @portrules = (); +my @tosrules = (); +my @tmpline = (); +my @classline = (); +my @subclassline = (); +my @l7ruleline = (); +my @portruleline = (); +my @tosruleline = (); +my @proto = (); +my %selected= (); +my @checked = (); +my $classfile = "/var/ipfire/qos/classes"; +my $subclassfile = "/var/ipfire/qos/subclasses"; +my $level7file = "/var/ipfire/qos/level7config"; +my $portfile = "/var/ipfire/qos/portconfig"; +my $tosfile = "/var/ipfire/qos/tosconfig"; +&General::readhash("${General::swroot}/ethernet/settings", \%netsettings); + +&overviewgraph($qossettings{'RED_DEV'}); +&overviewgraph($qossettings{'IMQ_DEV'}); + +my %color = (); +my %mainsettings = (); +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + +my %cgiparams=(); +# Maps a nice printable name to the changing part of the pid file, which +# is also the name of the program + + +# Generate Graphs from rrd Data +&Graphs::updatecpugraph ("day"); +&Graphs::updateloadgraph ("day"); + +&Header::showhttpheaders(); +&Header::getcgihash(\%cgiparams); +&Header::openpage($Lang::tr{'status information'}, 1, ''); +&Header::openbigbox('100%', 'left'); + + open( FILE, "< $classfile" ) or die "Unable to read $classfile"; + @classes = ; + close FILE; + open( FILE, "< $subclassfile" ) or die "Unable to read $subclassfile"; + @subclasses = ; + close FILE; + &Header::openbox('100%', 'left', 'QoS Graphen'); + print < Diese Seite braucht je nach Geschwindigkeit des Computers laenger zum Laden. + Klasse: +END +; + foreach $classentry (sort @classes) + { + @classline = split( /\;/, $classentry ); + $qossettings{'CLASS'}=$classline[1]; + print < +END +; + } + print < +END +; + &Header::closebox(); + foreach $classentry (sort @classes) + { + @classline = split( /\;/, $classentry ); + $qossettings{'DEV'}=$classline[0]; + $qossettings{'CLASS'}=$classline[1]; + &gengraph($qossettings{'DEV'},$qossettings{'CLASS'}); + print "\n"; + } +print < +END +; + +if (( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'RED_DEV'}.png") && ( -e "/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'IMQ_DEV'}.png")) { + print < + +END +;} + + +&Header::closebox(); +&Header::closebigbox(); +&Header::closepage(); + +sub gengraph { + $qossettings{'DEV'} = shift; + $qossettings{'CLASS'} = shift; + my $ERROR=""; + if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) { + $qossettings{'CLASSPRFX'} = '1'; + } else { + $qossettings{'CLASSPRFX'} = '2'; + } + my $color=random_hex_color(6); + + RRDs::graph ("/srv/web/ipfire/html/graphs/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}-packets.png", + "--start", "-3240", "-aPNG", "-i", "-z", + "--alt-y-grid", "-w 600", "-h 150", "-r", + "--color", "SHADEA#EAE9EE", + "--color", "SHADEB#EAE9EE", + "--color", "BACK#FFFFFF", + "-t $qossettings{'CLASS'} ($qossettings{'DEV'})", + "DEF:pkts=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:pkts:AVERAGE", + "DEF:dropped=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:dropped:AVERAGE", + "DEF:overlimits=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$qossettings{'CLASS'}_$qossettings{'DEV'}.rrd:overlimits:AVERAGE", + "AREA:pkts$color:packets", + "GPRINT:pkts:LAST:total packets\\:%8.3lf %s packets\\j", + "LINE3:dropped#FF0000:dropped", + "GPRINT:dropped:LAST:dropped packets\\:%8.3lf %s packets\\j", + "LINE3:overlimits#0000FF:overlimits", + "GPRINT:overlimits:LAST:overlimits\\:%8.3lf %s packets\\j", + ); +} + + +sub overviewgraph { + $qossettings{'DEV'} = shift; + if ( $qossettings{'DEV'} eq $qossettings{'RED_DEV'} ) { + $qossettings{'CLASSPRFX'} = '1'; + } else { + $qossettings{'CLASSPRFX'} = '2'; + } + my $ERROR=""; + my $count="1"; + my $color="#000000"; + my @command=("/srv/web/ipfire/html/graphs/qos-graph-$qossettings{'DEV'}.png", + "--start", "-3240", "-aPNG", "-i", "-z", + "--alt-y-grid", "-w 600", "-h 150", "-r", + "--color", "SHADEA#EAE9EE", + "--color", "SHADEB#EAE9EE", + "--color", "BACK#FFFFFF", + "-t Auslastung auf ($qossettings{'DEV'})" + ); + open( FILE, "< $classfile" ) or die "Unable to read $classfile"; + @classes = ; + close FILE; + foreach $classentry (sort @classes) + { + @classline = split( /\;/, $classentry ); + if ( $classline[0] eq $qossettings{'DEV'} ) + { + $color=random_hex_color(6); + push(@command, "DEF:$classline[1]=/var/log/rrd/class_$qossettings{'CLASSPRFX'}-$classline[1]_$qossettings{'DEV'}.rrd:bits:AVERAGE"); + + if ($count eq "1") { + push(@command, "AREA:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j"); + } else { + push(@command, "STACK:$classline[1]$color:Klasse $classline[1] - $classline[8]\\j"); + } + $count++; + } + } + RRDs::graph (@command); +} + +sub random_hex_color { + my $size = shift; + $size = 6 if $size !~ /^3|6$/; + my @hex = ( 0 .. 9, 'a' .. 'f' ); + my @color; + push @color, @hex[rand(@hex)] for 1 .. $size; + return join('', '#', @color); +} diff --git a/html/cgi-bin/traffic.cgi b/html/cgi-bin/traffic.cgi index ac0d2a079a..03843913a0 100644 --- a/html/cgi-bin/traffic.cgi +++ b/html/cgi-bin/traffic.cgi @@ -131,11 +131,6 @@ print < - -
- -
-
diff --git a/lfs/squid b/lfs/squid index f545ee1ab4..2bdf5bea82 100644 --- a/lfs/squid +++ b/lfs/squid @@ -123,6 +123,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) chmod 775 /srv/web/ipfire/html/updatecache/download chmod 775 /srv/web/ipfire/html/updatecache/metadata chmod 755 /var/log/updatexlrator + + chwon squid:squid /var/log/squid + mkdir /var/ipfire/proxy/advanced/auth + cp -f $(DIR_SRC)/config/proxy/auth /var/ipfire/proxy/advanced/auth + cp -f $(DIR_SRC)/config/proxy/proxy.pac /srv/web/ipfire/html/proxy.pac + chown nobody.nobody /srv/web/ipfire/html/proxy.pac + ln -f /srv/web/ipfire/html/proxy.pac /srv/web/ipfire/html//wpad.dat @rm -rf $(DIR_APP) @$(POSTBUILD)