From a993e470d75d2bc5708d729eb8fe1e9b3c483280 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 19 May 2014 12:59:08 +0200 Subject: [PATCH] new helper read_proc_net_route --- data/PVE/ProcFSTools.pm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/data/PVE/ProcFSTools.pm b/data/PVE/ProcFSTools.pm index e0a8828..8bb0d72 100644 --- a/data/PVE/ProcFSTools.pm +++ b/data/PVE/ProcFSTools.pm @@ -256,4 +256,32 @@ sub write_proc_entry { $fh->close(); } +sub read_proc_net_route { + my $filename = "/proc/net/route"; + + my $res = []; + + my $fh = IO::File->new ($filename, "r"); + return $res if !$fh; + + my $int_to_quad = sub { + return join '.' => map { ($_[0] >> 8*(3-$_)) % 256 } (3, 2, 1, 0); + }; + + while (defined(my $line = <$fh>)) { + next if $line =~/^Iface\s+Destination/; # skip head + my ($iface, $dest, $gateway, $metric, $mask, $mtu) = (split(/\s+/, $line))[0,1,2,6,7,8]; + push @$res, { + dest => &$int_to_quad(hex($dest)), + gateway => &$int_to_quad(hex($gateway)), + mask => &$int_to_quad(hex($mask)), + metric => $metric, + mtu => $mtu, + iface => $iface, + }; + } + + return $res; +} + 1; -- 2.39.2