#!/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 = ""; my $c = ""; my $direntry = ""; my @proto = (); my %selected= () ; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); &Header::showhttpheaders(); $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'; &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); } 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') { &changebandwidth(); &Header::closebigbox(); &Header::closepage(); exit } if ($qossettings{'ACTION_DEF'} eq 'Andern') { &changedefclasses(); &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'} 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 ; } print "
"; &Header::closebox(); if ( ($qossettings{'OUT_SPD'} eq '') || ($qossettings{'INC_SPD'} eq '') ) { &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 < # InterfaceKlasseMaximale GeschwindigkeitAktionen # #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: 
Upload: 

Legen sie hier die ACK-Klasse fest
und klicken Sie danach auf Speichern.
ACKs:
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 <
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(); } sub parentclass { &Header::openbox('100%', 'center', 'Parentklasse hinzufuegen'); print <
Geben sie die Daten ein
und klicken Sie danach auf Speichern.
Interface:  
Klasse: 
Prioritaet:
Garantierte Bandbreite:  
Maximale Bandbreite:  
Burst:  
Ceilburst:
END ; &Header::closebox(); } sub level7rule { &Header::openbox('100%', 'center', 'Level7-Regel hinzufuegen'); print <
Geben sie die Daten ein
und klicken Sie danach auf Speichern.
Name:  
Protokoll:  
Quell-IP-Adresse:  
Ziel-IP-Adresse:
END ; &Header::closebox(); }