From: Dietmar Maurer Date: Thu, 1 Mar 2012 08:52:12 +0000 (+0100) Subject: try to keep comments in /etc/network/interfaces X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=72ca6520542b7e2feca83cb945ea4ffec351aa6e try to keep comments in /etc/network/interfaces --- diff --git a/Makefile b/Makefile index 581d757..01f1e2a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ RELEASE=2.0 VERSION=1.0 -PKGREL=15 +PKGREL=16 PACKAGE=libpve-common-perl diff --git a/data/PVE/INotify.pm b/data/PVE/INotify.pm index abc8aeb..0c4da4c 100644 --- a/data/PVE/INotify.pm +++ b/data/PVE/INotify.pm @@ -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; diff --git a/debian/changelog b/debian/changelog index 32ccec0..92a93b4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libpve-common-perl (1.0-16) unstable; urgency=low + + * try to keep comments in /etc/network/interfaces + + -- Proxmox Support Team Thu, 01 Mar 2012 09:49:22 +0100 + libpve-common-perl (1.0-15) unstable; urgency=low * add Swedish keymap