try to keep ordering in /etc/network/interfaces

This commit is contained in:
Dietmar Maurer 2012-03-02 12:49:01 +01:00
parent adbc988db3
commit c9dc864557
3 changed files with 28 additions and 9 deletions

View File

@ -1,7 +1,7 @@
RELEASE=2.0
VERSION=1.0
PKGREL=17
PKGREL=18
PACKAGE=libpve-common-perl

View File

@ -692,6 +692,9 @@ sub read_etc_network_interfaces {
close($fd2);
}
# we try to keep order inside the file
my $priority = 2; # 1 is reserved for lo
# always add the vmbr0 bridge device
$ifaces->{vmbr0}->{exists} = 1;
@ -720,6 +723,7 @@ sub read_etc_network_interfaces {
} elsif ($line =~ m/^iface\s+(\S+)\s+inet\s+(\S+)\s*$/) {
my $i = $1;
$ifaces->{$i}->{method} = $2;
$ifaces->{$i}->{priority} = $priority++;
my $d = $ifaces->{$i};
while (defined ($line = <$fh>)) {
@ -778,6 +782,7 @@ sub read_etc_network_interfaces {
}
if (!$ifaces->{lo}) {
$ifaces->{lo}->{priority} = 1;
$ifaces->{lo}->{method} = 'loopback';
$ifaces->{lo}->{type} = 'loopback';
$ifaces->{lo}->{autostart} = 1;
@ -889,17 +894,25 @@ sub write_etc_network_interfaces {
my $printed = {};
foreach my $t (('lo', 'eth', '')) {
foreach my $iface (sort keys %$ifaces) {
foreach my $iface (sort {
my $ref1 = $ifaces->{$a};
my $ref2 = $ifaces->{$b};
my $p1 = $ref1->{priority} || 100000;
my $p2 = $ref2->{priority} || 100000;
return $p1 <=> $p2 if $p1 != $p2;
return $a cmp $b;
} keys %$ifaces) {
my $d = $ifaces->{$iface};
next if $printed->{$iface};
next if $iface !~ m/^$t/;
$printed->{$iface} = 1;
$raw .= __interface_to_string($iface, $d);
}
}
PVE::Tools::safe_print($filename, $fh, $raw);
}

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
libpve-common-perl (1.0-18) unstable; urgency=low
* try to keep ordering in /etc/network/interfaces
-- Proxmox Support Team <support@proxmox.com> Fri, 02 Mar 2012 12:33:34 +0100
libpve-common-perl (1.0-17) unstable; urgency=low
* better error message for usermod command