]> git.proxmox.com Git - pve-container.git/commitdiff
setup/debian: guard ipv4 output
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Fri, 16 Oct 2015 06:32:00 +0000 (08:32 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 16 Oct 2015 07:45:58 +0000 (09:45 +0200)
When only an ipv6 address was specified we still tried to
print an ipv4 address which warned and caused additional
newlines to be appended to the file on each start.

src/PVE/LXC/Setup/Debian.pm
src/test/test-debian-011/config [new file with mode: 0644]
src/test/test-debian-011/etc/debian_version [new file with mode: 0644]
src/test/test-debian-011/etc/network/interfaces [new file with mode: 0644]
src/test/test-debian-011/etc/network/interfaces.exp [new file with mode: 0644]

index 07dccfcf459e4063c8af417a80dc4ca654e984b9..44f77dd7dc90d256f8c134c91fe481a9fee16510 100644 (file)
@@ -134,7 +134,7 @@ sub setup_network {
 
            if ($net->{address} =~ /^(dhcp|manual)$/) {
                $interfaces .= "iface $section->{ifname} inet $1\n";
-           } elsif ($net->{address}) {
+           } else {
                $interfaces .= "iface $section->{ifname} inet static\n";
                $interfaces .= "\taddress $net->{address}\n" if defined($net->{address});
                $interfaces .= "\tnetmask $net->{netmask}\n" if defined($net->{netmask});
@@ -151,7 +151,7 @@ sub setup_network {
            
            if ($net->{address6} =~ /^(auto|dhcp|manual)$/) {
                $interfaces .= "iface $section->{ifname} inet6 $1\n";
-           } elsif ($net->{address6}) {
+           } else {
                $interfaces .= "iface $section->{ifname} inet6 static\n";
                $interfaces .= "\taddress $net->{address6}\n" if defined($net->{address6});
                $interfaces .= "\tnetmask $net->{netmask6}\n" if defined($net->{netmask6});
@@ -244,7 +244,7 @@ sub setup_network {
     foreach my $ifname (sort keys %$networks) {
        my $net = $networks->{$ifname};
        
-       if (!$done_v4_hash->{$ifname}) {
+       if (!$done_v4_hash->{$ifname} && defined($net->{address})) {
            if ($need_separator) { $interfaces .= "\n"; $need_separator = 0; };     
            $section = { type => 'ipv4', ifname => $ifname, attr => []};
            &$print_section(1);
diff --git a/src/test/test-debian-011/config b/src/test/test-debian-011/config
new file mode 100644 (file)
index 0000000..63c9ff5
--- /dev/null
@@ -0,0 +1 @@
+net0: name=eth0,hwaddr=46:6B:2E:6F:B1:13,bridge=vmbr0,ip6=fc00::89:c:1/96
diff --git a/src/test/test-debian-011/etc/debian_version b/src/test/test-debian-011/etc/debian_version
new file mode 100644 (file)
index 0000000..cc40bca
--- /dev/null
@@ -0,0 +1 @@
+8.0
diff --git a/src/test/test-debian-011/etc/network/interfaces b/src/test/test-debian-011/etc/network/interfaces
new file mode 100644 (file)
index 0000000..f1bd92e
--- /dev/null
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/test-debian-011/etc/network/interfaces.exp b/src/test/test-debian-011/etc/network/interfaces.exp
new file mode 100644 (file)
index 0000000..16e619d
--- /dev/null
@@ -0,0 +1,8 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet6 static
+       address fc00::89:c:1
+       netmask 96
+