]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/ProcFSTools.pm
read_prox_net_ipv6_route fixup
[pve-common.git] / src / PVE / ProcFSTools.pm
index 2d3123bbbce07c33fa03c3f0c4d5f0f50acfba3c..9c9eb8116c66f40b6842ef87b6d0cba0461b445d 100644 (file)
@@ -6,6 +6,7 @@ use POSIX;
 use Time::HiRes qw (gettimeofday);
 use IO::File;
 use PVE::Tools;
+use Cwd qw();
 
 my $clock_ticks = POSIX::sysconf(&POSIX::_SC_CLK_TCK);
 
@@ -284,6 +285,24 @@ sub read_proc_net_route {
     return $res;
 }
 
+sub read_proc_mounts {
+    return PVE::Tools::file_get_contents("/proc/mounts");
+}
+
+sub is_mounted {
+    my ($mountpoint) = @_;
+
+    $mountpoint = Cwd::realpath($mountpoint);
+
+    my $mountdata = read_proc_mounts();
+
+    if ($mountdata =~ m/\s$mountpoint\s/) {
+       return 1;
+    } else {
+       return 0;
+    }
+}
+
 sub read_proc_net_ipv6_route {
     my $filename = "/proc/net/ipv6_route";
 
@@ -292,16 +311,16 @@ sub read_proc_net_ipv6_route {
     my $fh = IO::File->new ($filename, "r");
     return $res if !$fh;
 
-    my $read_v6addr = sub { s/....(?!$)/$&:/g };
+    my $read_v6addr = sub { $_[0] =~ s/....(?!$)/$&:/gr };
 
     # ipv6_route has no header
     while (defined(my $line = <$fh>)) {
        my ($dest, $prefix, $nexthop, $metric, $iface) = (split(/\s+/, $line))[0,1,4,5,9];
        push @$res, {
            dest => &$read_v6addr($dest),
-           prefix => $prefix,
+           prefix => hex("$prefix"),
            gateway => &$read_v6addr($nexthop),
-           metric => $metric,
+           metric => hex("$metric"),
            iface => $iface
        };
     }