+ $message = "$Lang::tr{'Port Rule'} ($qossettings{'CLASS'} - $qossettings{'PPROT'}) $Lang::tr{'was deleted'}.";
+} elsif ($qossettings{'DOPORT'} eq 'Bearbeiten')
+{
+ open( FILE, "< $portfile" ) or die "Unable to read $portfile";
+ @portrules = <FILE>;
+ close FILE;
+ system("rm $portfile");
+ foreach $portruleentry (sort @portrules)
+ {
+ @portruleline = split( /\;/, $portruleentry );
+ if ( ($portruleline[0] eq $qossettings{'CLASS'}) && ($portruleline[2] eq $qossettings{'PPROT'}) && ($portruleline[3] eq $qossettings{'QIP'}) && ($portruleline[4] eq $qossettings{'QPORT'}) && ($portruleline[5] eq $qossettings{'DIP'}) && ($portruleline[6] eq $qossettings{'DPORT'}))
+ {$qossettings{'CLASS'}=$portruleline[0];$qossettings{'PPROT'}=$portruleline[2];$qossettings{'QIP'}=$portruleline[3];$qossettings{'QPORT'}=$portruleline[4];$qossettings{'DIP'}=$portruleline[5];$qossettings{'DPORT'}=$portruleline[6];}
+ else {
+ open( FILE, ">> $portfile" ) or die "Unable to write $portfile";
+ print FILE $portruleentry;
+ close FILE;
+ }
+ }
+ &portrule;
+ open( FILE, "< $portfile" ) or system("touch $portfile");close FILE;
+ }
+
+############################################################################################################################
+############################################################################################################################
+
+if ($qossettings{'DOTOS'} eq $Lang::tr{'save'})
+{
+ if ($qossettings{'CLASS'} >= 100 && $qossettings{'CLASS'} < 121) {
+ $qossettings{'DEVICE'} = $qossettings{'RED_DEV'};
+ } elsif ($qossettings{'CLASS'} >= 1000 && $qossettings{'CLASS'} < 1021) {
+ $qossettings{'DEVICE'} = $qossettings{'RED_DEV'};
+ } elsif ($qossettings{'CLASS'} >= 200 && $qossettings{'CLASS'} < 221) {
+ $qossettings{'DEVICE'} = $qossettings{'IMQ_DEV'};
+ } elsif ($qossettings{'CLASS'} >= 2000 && $qossettings{'CLASS'} < 2021) {
+ $qossettings{'DEVICE'} = $qossettings{'IMQ_DEV'};
+ }
+ open( FILE, ">> $tosfile" ) or die "Unable to write $tosfile";
+ print FILE <<END
+$qossettings{'CLASS'};$qossettings{'DEVICE'};$qossettings{'TOS'};
+END
+;
+ close FILE;
+}
+elsif ($qossettings{'DOTOS'} eq 'Loeschen')
+{
+ open( FILE, "< $tosfile" ) or die "Unable to read $tosfile";
+ @tosrules = <FILE>;
+ close FILE;
+ open( FILE, "> $tosfile" ) or die "Unable to read $tosfile";
+ foreach $tosruleentry (sort @tosrules)
+ {
+ @tosruleline = split( /\;/, $tosruleentry );
+ unless ( ($tosruleline[0] eq $qossettings{'CLASS'}) && ($tosruleline[2] eq $qossettings{'TOS'}))
+ {
+ print FILE $tosruleentry;
+ }
+ }
+ close FILE;
+ $message = "$Lang::tr{'TOS Rule'} ($qossettings{'CLASS'} - $qossettings{'TOS'}) $Lang::tr{'was deleted'}.";
+} elsif ($qossettings{'DOTOS'} eq 'Bearbeiten')
+{
+ open( FILE, "< $tosfile" ) or die "Unable to read $tosfile";
+ @tosrules = <FILE>;
+ close FILE;
+ open( FILE, "> $tosfile" ) or die "Unable to write $tosfile";
+ foreach $tosruleentry (sort @tosrules)
+ {
+ @tosruleline = split( /\;/, $tosruleentry );
+ if (( $tosruleline[0] eq $qossettings{'CLASS'} ) && ( $tosruleline[2] eq $qossettings{'TOS'} )) {
+ $qossettings{'DEVICE'} = $tosruleline[1];
+ $qossettings{'CLASS'} = $tosruleline[0];
+ $qossettings{'TOS'} = $tosruleline[2];
+ $qossettings{'EDIT'} = 'yes';
+ } else {
+ print FILE $tosruleentry;
+ }
+ }
+ close FILE;
+ &tosrule();
+ &Header::closebigbox();
+ &Header::closepage();
+ exit