GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
AnyEvent::DNS::EtcHosts(3) User Contributed Perl Documentation AnyEvent::DNS::EtcHosts(3)

AnyEvent::DNS::EtcHosts - Use /etc/hosts before DNS

  use AnyEvent::DNS::EtcHosts;

  use AnyEvent::DNS;
  my $cv = AE::cv;
  AnyEvent::DNS::any 'example.com', sub {
      say foreach map { $_->[4] } grep { $_->[1] =~ /^(a|aaaa)$/ } @_;
      $cv->send;
  };

  use AnyEvent::Socket;
  my $cv = AE::cv;
  AnyEvent::Socket::resolve_sockaddr $domain, $service, $proto, $family, undef, sub {
      say foreach map { format_address((AnyEvent::Socket::unpack_sockaddr($_->[3]))[1]) } @_;
      $cv->send;
  };

AnyEvent::DNS::EtcHosts changes AnyEvent::DNS behavior. The /etc/hosts file is searched before DNS, so it is possible to override DNS entries.

The DNS lookups are emulated. This resolver returns the standard DNS reply based on /etc/hosts file rather than real DNS.

You can choose different file by changing "PERL_ANYEVENT_HOSTS" environment variable.

This module also disables original AnyEvent::Socket's helper function which reads /etc/hosts file after DNS entry was not found. It prevents to read this file twice.

The AnyEvent::Socket resolver searches IPv4 and IPv6 addresses separately. If you don't want to check the addresses in DNS, both IPv4 and IPv6 addresses should be placed in /etc/hosts or the protocol family should be set explicitly for "resolve_sockaddr" function.

  use AnyEvent::DNS::EtcHosts server => '8.8.8.8';

  $ perl -MAnyEvent::DNS::EtcHosts script.pl

Enables this module globally. Additional arguments will be passed to AnyEvent::DNS constructor.

Disables this module globally.

  require AnyEvent::DNS::EtcHosts;

  $guard = AnyEvent::DNS::EtcHosts->register(%args);

  undef $guard;

Enables this module in lexical scope. The module will be disabled out of scope. Additional arguments will be passed to AnyEvent::DNS constructor.

If you want to use AnyEvent::DNS::EtcHosts in lexical scope only, you should use "require" rather than "use" keyword, because "import" method enables AnyEvent::DNS::EtcHosts globally.

  $resolver->request($req, $cb->($res))

This is wrapper for AnyEvent::DNS->request method.

AnyEvent::DNS, AnyEvent::Socket.

This module might be incompatible with further versions of AnyEvent module.

If you find the bug or want to implement new features, please report it at <https://github.com/dex4er/perl-AnyEvent-DNS-EtcHosts/issues>

The code repository is available at <http://github.com/dex4er/perl-AnyEvent-DNS-EtcHosts>

Piotr Roszatycki <dexter@cpan.org>

Helper functions taken from AnyEvent::Socket 7.05 by Marc Lehmann <schmorp@schmorp.de>

Copyright (c) 2013-2014 Piotr Roszatycki <dexter@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as perl itself.

See <http://dev.perl.org/licenses/artistic.html>

2014-07-14 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.