Firewall-Config-Element
view release on metacpan or search on metacpan
lib/Firewall/Config/Element/Zone/Role.pm view on Meta::CPAN
package Firewall::Config::Element::Zone::Role;
#------------------------------------------------------------------------------
# å è½½æ©å±æ¨¡å
#------------------------------------------------------------------------------
use Moose::Role;
use Firewall::Config::Element::Interface::Role;
use Firewall::Utils::Set;
use Firewall::Utils::Ip;
#------------------------------------------------------------------------------
# å¼ç¨ Firewall::Config::Element::Role è§è²
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::Role';
#------------------------------------------------------------------------------
# Firewall::Config::Element::Zone::Role éç¨å±æ§
#------------------------------------------------------------------------------
has name => ( is => 'ro', isa => 'Str', required => 1, );
has interfaces => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Interface::Role]', default => sub { {} }, );
has range => ( is => 'ro', isa => 'Firewall::Utils::Set', lazy => 1, default => sub { Firewall::Utils::Set->new() } );
#------------------------------------------------------------------------------
# å®å
¨åºæ·»å æ¥å£
#------------------------------------------------------------------------------
sub addInterface {
my ( $self, $interface ) = @_;
$self->interfaces->{$interface->sign} = $interface;
$self->range->mergeToSet( $interface->range );
}
#------------------------------------------------------------------------------
# å®å
¨åºæ·»å å°å段
#------------------------------------------------------------------------------
sub addrIpRange {
my $self = shift;
my $addrIpRangeARef = [];
my $ipObj = Firewall::Utils::Ip->new;
for ( my $i = 0; $i < $self->range->length; $i++ ) {
my $ipMin = $ipObj->changeIntToIp( $self->range->mins->[$i] );
my $ipMax = $ipObj->changeIntToIp( $self->range->maxs->[$i] );
my $ipRange = $ipMin . '-' . $ipMax;
push @{$addrIpRangeARef}, $ipRange;
}
return $addrIpRangeARef;
}
#------------------------------------------------------------------------------
# å®å
¨åºå°å段 - æå°å°åç»å
#------------------------------------------------------------------------------
sub mins {
my $self = shift;
return $self->range->mins;
}
#------------------------------------------------------------------------------
# å®å
¨åºå°å段 - æå¤§å°åç»å
#------------------------------------------------------------------------------
sub maxs {
my $self = shift;
return $self->range->maxs;
}
1;
( run in 0.817 second using v1.01-cache-2.11-cpan-39bf76dae61 )