#!/usr/bin/perl # # IPFire CGIs # # This code is distributed under the terms of the GPL # # (c) The IPFire 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 %qossettings=(); my %checked=(); my %netsettings=(); my $errormessage = ""; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); &Header::showhttpheaders(); $qossettings{'ACTION'} = ''; $qossettings{'ACTION_BW'} = ''; $qossettings{'ENABLED'} = ''; $qossettings{'OUT_SPD'} = ''; $qossettings{'INC_SPD'} = ''; $qossettings{'RED_DEV'} = `cat /var/ipfire/red/iface`; $qossettings{'IMQ_DEV'} = 'imq0'; &General::readhash("${General::swroot}/qos/settings", \%qossettings); &Header::getcgihash(\%qossettings); &Header::openpage('QoS', 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); if ($qossettings{'ACTION'} eq 'Start') { system("/bin/touch /var/ipfire/qos/enable"); $qossettings{'ENABLED'} = 'on'; &General::writehash("${General::swroot}/qos/settings", \%qossettings); } elsif ($qossettings{'ACTION'} eq 'Stop') { unlink "/var/ipfire/qos/enable"; $qossettings{'ENABLED'} = 'off'; &General::writehash("${General::swroot}/qos/settings", \%qossettings); } elsif ($qossettings{'ACTION'} eq $Lang::tr{'save'}) { &General::writehash("${General::swroot}/qos/settings", \%qossettings); } 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();
&Header::closebigbox();
&Header::closepage();
exit
}
&General::readhash("${General::swroot}/qos/settings", \%qossettings);
my $status = $Lang::tr{'stopped'};
my $statuscolor = $Header::colourred;
if ( $qossettings{'ENABLED'} eq 'on' ) {
$status = $Lang::tr{'running'};
$statuscolor = $Header::colourgreen;
}
if ( $netsettings{'RED_TYPE'} ne 'PPPOE' ) {
$qossettings{'RED_DEV'} = $netsettings{'RED_DEV'};
}
if ($errormessage) {
&Header::openbox('100%', 'left', $Lang::tr{'error messages'});
print "Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein
und klicken Sie danach auf Speichern.
Download-Geschwindigkeit: kbps
Upload-Geschwindigkeit: kbps
";
&Header::closebox();
if ( ($qossettings{'OUT_SPD'} eq '') || ($qossettings{'INC_SPD'} eq '') ) {
&Header::openbox('100%', 'center', "Outgoing ($qossettings{'RED_DEV'})");
print <Quality of Service:
$status
END
;
if (($qossettings{'OUT_SPD'} ne '') && ($qossettings{'INC_SPD'} ne '')) {
print <
Downloadgeschwindigkeit: $qossettings{'INC_SPD'}
Uploadgeschwindigkeit: $qossettings{'OUT_SPD'}
END
;
}
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.";
&Header::closebox();
&Header::closebigbox();
&Header::closepage();
exit
}
&Header::closebigbox();
&Header::closepage();