]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
Forward Firewall: fixed routine for rulepositioning
authorAlexander Marx <amarx@ipfire.org>
Sat, 12 Jan 2013 09:22:49 +0000 (10:22 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 9 Aug 2013 12:08:09 +0000 (14:08 +0200)
html/cgi-bin/forwardfw.cgi

index 78b7827def4305c33f92f247b2e3be195984e04d..32ecd7817f6e8ac1a03ff9e40692066bcd932f10 100755 (executable)
@@ -1401,8 +1401,7 @@ sub saverule
                        if($fwdfwsettings{'oldrulenumber'} gt $fwdfwsettings{'rulepos'}){
                                my %tmp=();
                                my $val=$fwdfwsettings{'oldrulenumber'}-$fwdfwsettings{'rulepos'};
-                               for ($a=0;$a<$val;$a++){
-                                       $fwdfwsettings{'oldrulenumber'}=$fwdfwsettings{'oldrulenumber'}-$a;
+                               for (my $z=0;$z<$val;$z++){
                                        foreach my $key (sort {$a <=> $b} keys %$hash){
                                                if ($key eq $fwdfwsettings{'oldrulenumber'}) {
                                                        my $last = $key -1;
@@ -1422,15 +1421,15 @@ sub saverule
                                                        }
                                                }
                                        }
+                                       $fwdfwsettings{'oldrulenumber'}--;
                                }
                                &General::writehasharray("$config", $hash);
                                &rules;
                        }elsif($fwdfwsettings{'rulepos'} gt $fwdfwsettings{'oldrulenumber'}){
                                my %tmp=();
                                my $val=$fwdfwsettings{'rulepos'}-$fwdfwsettings{'oldrulenumber'};
-                               for ($a=0;$a<$val;$a++){
-                                       $fwdfwsettings{'oldrulenumber'}=$fwdfwsettings{'oldrulenumber'}+$a;
-                                       foreach my $key (sort {$a <=> $b} keys %$hash){
+                                       for (my $z=0;$z<$val;$z++){
+                                               foreach my $key (sort {$a <=> $b} keys %$hash){
                                                if ($key eq $fwdfwsettings{'oldrulenumber'}) {
                                                        my $next = $key + 1;
                                                        if (exists $$hash{$next}){
@@ -1449,6 +1448,7 @@ sub saverule
                                                        }
                                                }
                                        }
+                                       $fwdfwsettings{'oldrulenumber'}++;
                                }
                                &General::writehasharray("$config", $hash);
                                &rules;