]> git.proxmox.com Git - pve-common.git/commitdiff
write_network_interfaces: improved sorting
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 25 Jun 2015 09:54:33 +0000 (11:54 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 26 Jun 2015 05:51:07 +0000 (07:51 +0200)
This way option line positions between interfaces can be
preserved.

src/PVE/INotify.pm

index 4dd403650665952bc2a53c7753cc9519d5e6e6e3..564814e819b038d965ac9c4dfa0b91f527f5d16f 100644 (file)
@@ -1261,10 +1261,10 @@ NETWORKDOC
 
     my $if_type_hash = {
        unknown => 0,
-       loopback => 10,
-       eth => 20,
-       bond => 30,
-       bridge => 40,
+       loopback => 100000,
+       eth => 200000,
+       bond => 300000,
+       bridge => 400000,
    };
 
     my $lookup_type_prio = sub {
@@ -1296,10 +1296,8 @@ NETWORKDOC
        my $p1 = &$lookup_type_prio($a);
        my $p2 = &$lookup_type_prio($b);
 
-       return $p1 <=> $p2 if $p1 != $p2;
-
-       $p1 = $ref1->{priority} || 100000;
-       $p2 = $ref2->{priority} || 100000;
+       $p1 += $ref1->{priority} // 50000;
+       $p2 += $ref2->{priority} // 50000;
 
        return $p1 <=> $p2 if $p1 != $p2;
 
@@ -1308,10 +1306,11 @@ NETWORKDOC
        next if $printed->{$iface};
 
        my $d = $ifaces->{$iface};
-       if (@options && $options[0]->[0] < $d->{priority}) {
+       my $pri = $d->{priority} // 0;
+       if (@options && $options[0]->[0] < $pri) {
            do {
                $raw .= (shift @options)->[1] . "\n";
-           } while (@options && $options[0]->[0] < $d->{priority});
+           } while (@options && $options[0]->[0] < $pri);
            $raw .= "\n";
        }