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


Manual Reference Pages  -  ANYEVENT::DNS::ETCHOSTS (3)

.ds Aq ’

NAME

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

CONTENTS

SYNOPSIS



  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;
  };



DESCRIPTION

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.

IMPORTS

use AnyEvent::DNS::EtcHosts CW%args;



  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.

    no AnyEvent::DNS::EtcHosts;

Disables this module globally.

METHODS

    register



  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.

    request



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



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

SEE ALSO

AnyEvent::DNS, AnyEvent::Socket.

BUGS

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>

AUTHORS

Piotr Roszatycki <dexter@cpan.org>

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

LICENSE

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>

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


perl v5.20.3 ANYEVENT::DNS::ETCHOSTS (3) 2014-07-14

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