#!/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 <
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 } &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 "$errormessage\n"; print " \n"; &Header::closebox(); } &Header::openbox('100%', 'center', 'Quality of Service'); 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 "
"; &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 < InterfaceKlasseMaximale GeschwindigkeitAktionen ppp0198512BLA ppp0199512BLA 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();