NAME

   Mojo::IOLoop::DNSNative - Async native DNS lookup

VERSION

   version 0.001

SYNOPSIS

     use feature 'say';
     use Mojo::IOLoop;
     use Mojo::IOLoop::DNSNative;

     my $loop = Mojo::IOLoop->new;
     my $dns = Mojo::IOLoop::DNSNative->new(reactor => $loop->reactor);

     $dns->lookup(
       'google.com',
       sub {
         my ($err, @ips) = @_;
         die "Could not look up google.com: $err" if $err;

         say for @ips;
       }
     );

     $loop->start;

DESCRIPTION

   Look up hostnames using Net::DNS::Native in a Mojo::IOLoop without
   blocking.

ATTRIBUTES

   Mojo::IOLoop::DNSNative implements the following attributes.

NDN

     my $ndn = $dns->NDN;
     $dns    = $dns->NDN(Net::DNS::Native->new(pool => 5, extra_thread => 1));

   The underlying Net::DNS::Native object used to perform lookups.

reactor

     my $reactor = $dns->reactor;
     $dns        = $dns->reactor(Mojo::Reactor::Poll->new);

   Low-level event reactor, defaults to the reactor attribute of the
   global Mojo::IOLoop singleton.

timeout

     my $timeout = $dns->timeout;
     $dns        = $dns->timeout(10);

   Sets the timeout for lookups. Use 0 to disable timeouts.

METHODS

   Mojo::IOLoop::DNSNative implements the following methods.

lookup

     $dns->lookup(
       $host,
       sub {
         my ($err, @ips) = @_;
         die "Could not lookup $host: $err" if $err;

         say "$host resolves to @ips";
       }
     );

   Look up a hostname using Net::DNS::Native and get all the IPs it
   resolves to.

SEE ALSO

   Mojo::IOLoop

   Net::DNS::Native

AUTHOR

   Andreas Guldstrand <[email protected]>

COPYRIGHT AND LICENSE

   This software is Copyright (c) 2017 by Andreas Guldstrand.

   This is free software, licensed under:

     The MIT (X11) License