5
0
mirror of git://git.proxmox.com/git/pve-common.git synced 2025-03-22 06:50:42 +03:00

try to keep comments in /etc/network/interfaces

This commit is contained in:
Dietmar Maurer 2012-03-01 09:52:12 +01:00
parent 9934cd0bd1
commit 72ca652054
3 changed files with 55 additions and 36 deletions

View File

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

View File

@ -722,44 +722,51 @@ sub read_etc_network_interfaces {
$ifaces->{$i}->{method} = $2;
my $d = $ifaces->{$i};
while (defined ($line = <$fh>) && ($line =~ m/^\s+((\S+)\s+(.+))$/)) {
my $option = $1;
my ($id, $value) = ($2, $3);
if (($id eq 'address') || ($id eq 'netmask') || ($id eq 'broadcast')) {
$d->{$id} = $value;
} elsif ($id eq 'gateway') {
$d->{$id} = $value;
$gateway = 1;
} elsif ($id eq 'slaves' || $id eq 'bridge_ports') {
my $devs = {};
foreach my $p (split (/\s+/, $value)) {
next if $p eq 'none';
$devs->{$p} = 1;
}
my $str = join (' ', sort keys %{$devs});
$d->{$id} = $str || '';
} elsif ($id eq 'bridge_stp') {
if ($value =~ m/^\s*(on|yes)\s*$/i) {
$d->{$id} = 'on';
} else {
$d->{$id} = 'off';
}
} elsif ($id eq 'bridge_fd') {
$d->{$id} = $value;
} elsif ($id eq 'bond_miimon') {
$d->{$id} = $value;
} elsif ($id eq 'bond_mode') {
# always use names
foreach my $bm (keys %$bond_modes) {
my $id = $bond_modes->{$bm};
if ($id eq $value) {
$value = $bm;
last;
while (defined ($line = <$fh>)) {
if ($line =~ m/^#(.*)\s*$/) {
$d->{comment} = '' if !$d->{comment};
$d->{comment} .= PVE::Tools::decode_text($1) . "\n";
} elsif ($line =~ m/^\s+((\S+)\s+(.+))$/) {
my $option = $1;
my ($id, $value) = ($2, $3);
if (($id eq 'address') || ($id eq 'netmask') || ($id eq 'broadcast')) {
$d->{$id} = $value;
} elsif ($id eq 'gateway') {
$d->{$id} = $value;
$gateway = 1;
} elsif ($id eq 'slaves' || $id eq 'bridge_ports') {
my $devs = {};
foreach my $p (split (/\s+/, $value)) {
next if $p eq 'none';
$devs->{$p} = 1;
}
my $str = join (' ', sort keys %{$devs});
$d->{$id} = $str || '';
} elsif ($id eq 'bridge_stp') {
if ($value =~ m/^\s*(on|yes)\s*$/i) {
$d->{$id} = 'on';
} else {
$d->{$id} = 'off';
}
} elsif ($id eq 'bridge_fd') {
$d->{$id} = $value;
} elsif ($id eq 'bond_miimon') {
$d->{$id} = $value;
} elsif ($id eq 'bond_mode') {
# always use names
foreach my $bm (keys %$bond_modes) {
my $id = $bond_modes->{$bm};
if ($id eq $value) {
$value = $bm;
last;
}
}
$d->{$id} = $value;
} else {
push @{$d->{options}}, $option;
}
$d->{$id} = $value;
} else {
push @{$d->{options}}, $option;
last;
}
}
}
@ -864,6 +871,12 @@ sub __interface_to_string {
$raw .= "\t$option\n";
}
# add comments
my $comment = $d->{comment} || '';
foreach my $cl (split(/\n/, $comment)) {
$raw .= '#' . PVE::Tools::encode_text($cl) . "\n";
}
$raw .= "\n";
return $raw;

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
libpve-common-perl (1.0-16) unstable; urgency=low
* try to keep comments in /etc/network/interfaces
-- Proxmox Support Team <support@proxmox.com> Thu, 01 Mar 2012 09:49:22 +0100
libpve-common-perl (1.0-15) unstable; urgency=low
* add Swedish keymap