From: Dietmar Maurer Date: Mon, 19 May 2014 10:59:08 +0000 (+0200) Subject: new helper read_proc_net_route X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=a993e470d75d2bc5708d729eb8fe1e9b3c483280 new helper read_proc_net_route --- 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;