The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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 <andreas.guldstrand@gmail.com>

COPYRIGHT AND LICENSE

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

This is free software, licensed under:

The MIT (X11) License