summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStig Thormodsrud <stig@io.vyatta.com>2009-03-02 15:33:40 -0800
committerStig Thormodsrud <stig@io.vyatta.com>2009-03-02 15:33:40 -0800
commit863b6c71f0cc802809db61843dff99af0efd0999 (patch)
treebe7fed78b6f122229e7bbb911b13748c59664149
parentf99deef50eda86d063338c92ceed768b5578fb0b (diff)
downloadvyatta-cfg-863b6c71f0cc802809db61843dff99af0efd0999.tar.gz
vyatta-cfg-863b6c71f0cc802809db61843dff99af0efd0999.zip
Remove duplicate constants.
-rw-r--r--lib/Vyatta/Interface.pm20
-rwxr-xr-xlib/Vyatta/Misc.pm41
2 files changed, 29 insertions, 32 deletions
diff --git a/lib/Vyatta/Interface.pm b/lib/Vyatta/Interface.pm
index 73b8c6b..f83f58f 100644
--- a/lib/Vyatta/Interface.pm
+++ b/lib/Vyatta/Interface.pm
@@ -216,6 +216,26 @@ sub flags {
return hex($val);
}
+sub is_broadcast {
+ my $self = shift;
+ return $self->flags() & IFF_BROADCAST;
+}
+
+sub is_multicast {
+ my $self = shift;
+ return $self->flags() & IFF_MULTICAST;
+}
+
+sub is_pointtopoint {
+ my $self = shift;
+ return $self->flags() & IFF_POINTOPOINT;
+}
+
+sub is_loopback {
+ my $self = shift;
+ return $self->flags() & IFF_LOOPBACK;
+}
+
# device exists and is online
sub up {
my $self = shift;
diff --git a/lib/Vyatta/Misc.pm b/lib/Vyatta/Misc.pm
index 9140d4c..57c2ac2 100755
--- a/lib/Vyatta/Misc.pm
+++ b/lib/Vyatta/Misc.pm
@@ -122,32 +122,11 @@ sub getIP {
return @addresses;
}
-use constant {
- IFF_UP => 0x1, # interface is up
- IFF_BROADCAST => 0x2, # broadcast address valid
- IFF_DEBUG => 0x4, # turn on debugging
- IFF_LOOPBACK => 0x8, # is a loopback net
- IFF_POINTOPOINT => 0x10, # interface is has p-p link
- IFF_NOTRAILERS => 0x20, # avoid use of trailers
- IFF_RUNNING => 0x40, # interface RFC2863 OPER_UP
- IFF_NOARP => 0x80, # no ARP protocol
- IFF_PROMISC => 0x100, # receive all packets
- IFF_ALLMULTI => 0x200, # receive all multicast packets
- IFF_MASTER => 0x400, # master of a load balancer
- IFF_SLAVE => 0x800, # slave of a load balancer
- IFF_MULTICAST => 0x1000, # Supports multicast
- IFF_PORTSEL => 0x2000, # can set media type
- IFF_AUTOMEDIA => 0x4000, # auto media select active
- IFF_DYNAMIC => 0x8000, # dialup device with changing addresses
- IFF_LOWER_UP => 0x10000, # driver signals L1 up
- IFF_DORMANT => 0x20000, # driver signals dormant
- IFF_ECHO => 0x40000, # echo sent packets
-};
my %type_hash = (
- 'broadcast' => IFF_BROADCAST,
- 'multicast' => IFF_MULTICAST,
- 'pointtopoint' => IFF_POINTOPOINT,
+ 'broadcast' => 'is_broadcast',
+ 'multicast' => 'is_multicast',
+ 'pointtopoint' => 'is_pointtopoint',
);
# getInterfacesIPadresses() returns IPv4 addresses for the interface type
@@ -155,25 +134,23 @@ my %type_hash = (
# the loopback IP address is never returned with any of the above parameters
sub getInterfacesIPadresses {
my $type = shift;
- my $mask;
+ my $type_func;
my @ips;
$type or die "Interface type not defined";
if ($type ne 'all') {
- $mask = $type_hash{$type};
+ $type_func = $type_hash{$type};
die "Invalid type specified to retreive IP addresses for: $type"
- unless $mask;
+ unless $type_func;
}
foreach my $name (getInterfaces()) {
my $intf = new Vyatta::Interface($name);
next unless $intf;
-
- my $flags = $intf->flags();
- next if ($flags & IFF_LOOPBACK);
- if (defined $mask) {
- next unless $flags & $mask;
+ next if $intf->loopback();
+ if (defined $type_func) {
+ next unless $intf->$type_func();
}
my @addresses = $intf->address(4);