AllKnowingDNS
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/App/AllKnowingDNS/Config.pm view on Meta::CPAN
# vim:ts=4:sw=4:expandtab
package App::AllKnowingDNS::Config;
use Mouse;
use App::AllKnowingDNS::Zone;
use App::AllKnowingDNS::Util;
use Data::Dumper;
=head1 NAME
App::AllKnowingDNS::Config - configuration object
=head1 DESCRIPTION
Note: User documentation is in L<all-knowing-dns>(1).
This module defines an object which holds the parsed version of the
AllKnowingDNS configuration file.
=head1 FUNCTIONS
=cut
has 'listen_addresses' => (
traits => [ 'Array' ],
is => 'ro',
isa => 'ArrayRef[Str]',
default => sub { [] },
handles => {
add_listen_address => 'push',
all_listen_addresses => 'elements',
count_listen_addresses => 'count',
},
);
has 'zones' => (
traits => [ 'Array' ],
is => 'ro',
isa => 'ArrayRef[App::AllKnowingDNS::Zone]',
default => sub { [] },
handles => {
all_zones => 'elements',
has_zones => 'count',
count_zones => 'count',
},
);
sub add_zone {
my ($self, $zone) = @_;
my $aaaazone = quotemeta($zone->resolves_to);
$aaaazone =~ s/\\%DIGITS\\%/([a-z0-9]+)/i;
$zone->aaaazone(qr/^$aaaazone$/);
$zone->ptrzone(App::AllKnowingDNS::Util::netmask_to_ptrzone($zone->network));
push @{$self->zones}, $zone;
}
=head2 zone_for_ptr($zone)
Returns the appropriate zone for the given PTR query or undef if there is no
appropriate zone.
Example:
my $query = '7.c.e.2.3.4.e.f.f.f.b.d.9.1.2.0.' .
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.564 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )