diff options
Diffstat (limited to 'lib/Vyatta/ioctl.pm')
-rw-r--r-- | lib/Vyatta/ioctl.pm | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/lib/Vyatta/ioctl.pm b/lib/Vyatta/ioctl.pm deleted file mode 100644 index 6572231..0000000 --- a/lib/Vyatta/ioctl.pm +++ /dev/null @@ -1,67 +0,0 @@ -# Author: John Southworth <john.southworth@vyatta.com> -# Date: 2012 -# Description: vyatta ioctl functions - -# **** License **** -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# This code was originally developed by Vyatta, Inc. -# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc. -# All Rights Reserved. -# **** End License **** - -package Vyatta::ioctl; - -use strict; -use warnings; -use Socket; -Socket6->import(qw(inet_pton getaddrinfo)); - -{ - local $^W = 0; - require 'sys/ioctl.ph'; -} - -our @EXPORT = qw(get_terminal_size get_interface_flags); -use base qw(Exporter); - - -# returns (rows, columns) for terminal size; -sub get_terminal_size { - # undefined if not terminal attached - open(my $TTY, '>', '/dev/tty') - or return; - - my $winsize = ''; - # undefined if output not going to terminal - return unless (ioctl($TTY, &TIOCGWINSZ, $winsize)); - close($TTY); - - my ($rows, $cols, undef, undef) = unpack('S4', $winsize); - return ($rows, $cols); -} - -#Do SIOCGIFFLAGS ioctl in perl -sub get_interface_flags { - my $name = shift; - - socket (my $sock, AF_INET, SOCK_DGRAM, 0) - or die "open UDP socket failed: $!"; - - my $ifreq = pack('a16', $name); - ioctl($sock, &SIOCGIFFLAGS, $ifreq) - or return; #undef - - my (undef, $flags) = unpack('a16s', $ifreq); - return $flags; - -} - -1; |