lib/DNS/Vi.pm
changeset 85 0941dc67002c
parent 84 0d9901b561f7
child 94 8014e5fee219
equal deleted inserted replaced
84:0d9901b561f7 85:0941dc67002c
     7 use File::Temp;
     7 use File::Temp;
     8 use Net::DNS;
     8 use Net::DNS;
     9 use Term::ReadKey;
     9 use Term::ReadKey;
    10 use base 'Exporter';
    10 use base 'Exporter';
    11 use if $] >= 5.020, experimental => 'smartmatch';
    11 use if $] >= 5.020, experimental => 'smartmatch';
    12 
       
    13 
    12 
    14 our @EXPORT = qw(ttl2h h2ttl parse delta nice edit update show get_key
    13 our @EXPORT = qw(ttl2h h2ttl parse delta nice edit update show get_key
    15   get_auth_info);
    14   get_auth_info);
    16 our @EXPORT_OK = ();
    15 our @EXPORT_OK = ();
    17 
    16 
   284 sub get_auth_info {
   283 sub get_auth_info {
   285     my $name = shift;
   284     my $name = shift;
   286     my %auth = (zone => undef, master => undef);
   285     my %auth = (zone => undef, master => undef);
   287     state $resolver = Net::DNS::Resolver->new;
   286     state $resolver = Net::DNS::Resolver->new;
   288     my $response = $resolver->send($name, 'SOA')
   287     my $response = $resolver->send($name, 'SOA')
   289 	or die $resolver->errorstring, "\n";
   288       or die $resolver->errorstring, "\n";
   290 
   289 
   291 #    use Data::Dumper;
   290     #    use Data::Dumper;
   292 #    die Dumper $response;
   291     #    die Dumper $response;
   293 
   292 
   294     if (my @soa = grep { $_->type eq 'SOA' } $response->answer, $response->authority) {
   293     if (my @soa = grep { $_->type eq 'SOA' } $response->answer,
   295 	die "got multiple soa records\n" if @soa > 1;
   294         $response->authority)
   296 	my $soa = $soa[0];
   295     {
   297 	return (
   296         die "got multiple soa records\n" if @soa > 1;
   298 	    name => $soa->name,
   297         my $soa = $soa[0];
   299 	    mname => $soa->mname,
   298         return (
   300 	)
   299             name  => $soa->name,
       
   300             mname => $soa->mname,
       
   301         );
   301     }
   302     }
   302 
   303 
   303     return $response->authority;
   304     return $response->authority;
   304 }
   305 }
   305 
   306