]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/INotify.pm
Add AbstractConfig base class
[pve-common.git] / src / PVE / INotify.pm
index 60610ce507f467d20d66ea30a4e4ec6a38b1dbf1..74a0fe1abf1e30d83a96998ca5b3c433f4779b71 100644 (file)
@@ -648,9 +648,9 @@ sub write_active_workers {
        my $saved = $task->{saved} ? 1 : 0;
        if ($task->{endtime}) {
            if ($task->{status}) {
-               $raw .= sprintf("$upid $saved %08X $task->{status}\n", $task->{endtime});
+               $raw .= sprintf("%s %s %08X %s\n", $upid, $saved, $task->{endtime}, $task->{status});
            } else {
-               $raw .= sprintf("$upid $saved %08X\n", $task->{endtime});
+               $raw .= sprintf("%s %s %08X\n", $upid, $saved, $task->{endtime});
            }
        } else {
            $raw .= "$upid $saved\n";
@@ -785,12 +785,12 @@ my $extract_ovs_option = sub {
 sub read_etc_network_interfaces {
     my ($filename, $fh) = @_;
     my $proc_net_dev = IO::File->new('/proc/net/dev', 'r');
-    my $proc_net_if_inet6 = IO::File->new('/proc/net/if_inet6', 'r');
-    return __read_etc_network_interfaces($fh, $proc_net_dev, $proc_net_if_inet6);
+    my $active = PVE::Network::get_active_interfaces();
+    return __read_etc_network_interfaces($fh, $proc_net_dev, $active);
 }
 
 sub __read_etc_network_interfaces {
-    my ($fh, $proc_net_dev, $proc_net_if_inet6) = @_;
+    my ($fh, $proc_net_dev, $active_ifaces) = @_;
 
     my $config = {};
     my $ifaces = $config->{ifaces} = {};
@@ -905,7 +905,11 @@ sub __read_etc_network_interfaces {
        }
     }
 
-
+    foreach my $ifname (@$active_ifaces) {
+       if (my $iface = $ifaces->{$ifname}) {
+           $iface->{active} = 1;
+       }
+    }
 
     if (!$ifaces->{lo}) {
        $ifaces->{lo}->{priority} = 1;
@@ -997,15 +1001,6 @@ sub __read_etc_network_interfaces {
        $d->{families} ||= ['inet'];
     }
 
-    if ($proc_net_if_inet6) {
-       while (defined ($line = <$proc_net_if_inet6>)) {
-           if ($line =~ m/^[a-f0-9]{32}\s+[a-f0-9]{2}\s+[a-f0-9]{2}\s+[a-f0-9]{2}\s+[a-f0-9]{2}\s+(\S+)$/) {
-               $ifaces->{$1}->{active} = 1 if defined($ifaces->{$1});
-           }
-       }
-       close ($proc_net_if_inet6);
-    }
-
     # OVS bridges create "allow-$BRIDGE $IFACE" lines which we need to remove
     # from the {options} hash for them to be removed correctly.
     @$options = grep {defined($_)} map {