diff --git a/html/cgi-bin/qos.cgi b/html/cgi-bin/qos.cgi
index ecda291f5..07b63581a 100644
--- a/html/cgi-bin/qos.cgi
+++ b/html/cgi-bin/qos.cgi
@@ -16,19 +16,24 @@ require '/var/ipfire/general-functions.pl';
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
-my %qossettings=();
-my %checked=();
-my %netsettings=();
+my %qossettings = ();
+my %checked = ();
+my %netsettings = ();
my $errormessage = "";
+my $c = "";
+my $direntry = "";
+my @proto = ();
+my %selected= () ;
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&Header::showhttpheaders();
-$qossettings{'ACTION'} = '';
-$qossettings{'ACTION_BW'} = '';
-$qossettings{'ENABLED'} = '';
+$qossettings{'ENABLED'} = 'off';
$qossettings{'OUT_SPD'} = '';
$qossettings{'INC_SPD'} = '';
+$qossettings{'DEFCLASS_INC'} = '';
+$qossettings{'DEFCLASS_OUT'} = '';
+$qossettings{'ACK'} = '';
$qossettings{'RED_DEV'} = `cat /var/ipfire/red/iface`;
$qossettings{'IMQ_DEV'} = 'imq0';
@@ -36,10 +41,8 @@ $qossettings{'IMQ_DEV'} = 'imq0';
&Header::getcgihash(\%qossettings);
&Header::openpage('QoS', 1, '');
-
&Header::openbigbox('100%', 'left', '', $errormessage);
-
if ($qossettings{'ACTION'} eq 'Start')
{
system("/bin/touch /var/ipfire/qos/enable");
@@ -56,25 +59,30 @@ elsif ($qossettings{'ACTION'} eq $Lang::tr{'save'})
{
&General::writehash("${General::swroot}/qos/settings", \%qossettings);
}
+elsif ($qossettings{'ACTION'} eq 'Parentklasse hinzufuegen')
+{
+ &parentclass();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit
+}
+elsif ($qossettings{'ACTION'} eq 'Level7-Regel hinzufuegen')
+{
+ &level7rule();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit
+}
if ($qossettings{'ACTION_BW'} eq 'Andern')
{
- &Header::openbox('100%', 'center', 'Bandbreiteneinstellungen');
- if ($qossettings{'ENABLED'} eq 'on') {
- print "Sie koennen die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten sie es zuerst dazu aus.
";
- print "Zurueck ";
- } else {
- print <
-
-
-END
-;
- }
- &Header::closebox();
+ &changebandwidth();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit
+}
+if ($qossettings{'ACTION_DEF'} eq 'Andern')
+{
+ &changedefclasses();
&Header::closebigbox();
&Header::closepage();
exit
@@ -106,17 +114,31 @@ print <
Quality of Service:
$status
-
-
-
+
+
+
+
END
;
if (($qossettings{'OUT_SPD'} ne '') && ($qossettings{'INC_SPD'} ne '')) {
print <
- Downloadgeschwindigkeit: $qossettings{'INC_SPD'}
- Uploadgeschwindigkeit: $qossettings{'OUT_SPD'}
-
+ Downloadgeschwindigkeit: $qossettings{'INC_SPD'} kbps
+
+ Uploadgeschwindigkeit: $qossettings{'OUT_SPD'} kbps
+END
+;
+ }
+ if (($qossettings{'DEFCLASS_OUT'} ne '') && ($qossettings{'DEFCLASS_INC'} ne '')&& ($qossettings{'ACK'} ne '')) {
+ print <
+ Downloadstandardklasse: $qossettings{'DEFCLASS_INC'}
+
+ Uploadstandardklasse: $qossettings{'DEFCLASS_OUT'}
+ ACKs: $qossettings{'ACK'}
+
+
+ Nur temporaer >>> <<<
END
;
}
@@ -124,43 +146,234 @@ print "";
&Header::closebox();
if ( ($qossettings{'OUT_SPD'} eq '') || ($qossettings{'INC_SPD'} eq '') ) {
-&Header::openbox('100%', 'center', "Outgoing ($qossettings{'RED_DEV'})");
-print <
- Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein und klicken Sie danach auf Speichern .
- Download-Geschwindigkeit: kbps
- Upload-Geschwindigkeit: kbps
-
-
-END
-;
-&Header::closebox();
-&Header::closebigbox();
-&Header::closepage();
-exit
-}
-
-if ( $qossettings{'RED_DEV'} ne '' ) {
- &Header::openbox('100%', 'center', 'Outgoing Interface');
- print <
- Interface Klasse Maximale Geschwindigkeit Aktionen
-
- ppp0 198 512 BLA
- ppp0 199 512 BLA
-
-END
-;
- &Header::closebox();
-} else {
- &Header::openbox('100%', 'center', 'Outgoing Interface');
- print "Es ist kein rotes Interface vorhanden.";
+ &changebandwidth();
&Header::closebox();
&Header::closebigbox();
&Header::closepage();
exit
}
+if ( ($qossettings{'DEFCLASS_INC'} eq '') || ($qossettings{'DEFCLASS_OUT'} eq '') || ($qossettings{'ACK'} eq '') ) {
+ &changedefclasses();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit
+}
+
+
+# &Header::openbox('100%', 'center', 'Outgoing Interface');
+# print <
+# Interface Klasse Maximale Geschwindigkeit Aktionen
+#
+#END
+#;
+# &Header::closebox();
+
&Header::closebigbox();
&Header::closepage();
+# ---------------------------------------------------------------------------------------------------------------------------------
+
+sub changedefclasses {
+ &Header::openbox('100%', 'center', 'Standardklassen:');
+ print <
+
+ Legen sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.
+ Download:
+END
+;
+ for ( $c = 100 ; $c <= 120 ; $c++ )
+ {
+ if ( $qossettings{'DEFCLASS_INC'} ne $c )
+ {
+ print "$c \n";
+ }
+ else
+ {
+ print "$c \n";
+ }
+ }
+ print <
+ Upload:
+END
+;
+ for ( $c = 200 ; $c <= 220 ; $c++ )
+ {
+ if ( $qossettings{'DEFCLASS_OUT'} ne $c )
+ {
+ print "$c \n";
+ }
+ else
+ {
+ print "$c \n";
+ }
+ }
+ print <
+
+
+
+
+END
+;
+ &Header::closebox();
+}
+
+sub changebandwidth {
+ &Header::openbox('100%', 'center', 'Bandbreiteneinstellungen');
+ if ($qossettings{'ENABLED'} eq 'on') {
+ print "Sie koennen die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten sie es zuerst dazu aus.";
+ print "Zurueck ";
+ } else {
+ print <
+
+
+END
+;
+ }
+ &Header::closebox();
+}
+
+sub parentclass {
+ &Header::openbox('100%', 'center', 'Parentklasse hinzufuegen');
+ print <
+
+END
+;
+ &Header::closebox();
+}
+
+sub level7rule {
+ &Header::openbox('100%', 'center', 'Level7-Regel hinzufuegen');
+ print <
+
+END
+;
+ &Header::closebox();
+}
\ No newline at end of file
diff --git a/src/rc.d/rc.updatered b/src/rc.d/rc.updatered
index 6ca8efbf9..e20a2b1c0 100644
--- a/src/rc.d/rc.updatered
+++ b/src/rc.d/rc.updatered
@@ -134,11 +134,7 @@ if [ -e "CONFIG_ROOT/red/active" ]; then
/etc/rc.d/rc.firewall reload
/usr/local/bin/setfilters
/usr/local/bin/restartsnort red
- unset ENABLE
- eval $(/usr/local/bin/readhash CONFIG_ROOT/shaping/settings)
- if [ "$ENABLE" == "on" ]; then
- /usr/local/bin/restartshaping
- fi
+ # Add QoS-Call here!
/usr/local/bin/setportfw
/usr/local/bin/setxtaccess
/usr/local/bin/setddns.pl -f