ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



Mail::SpamAssassin::DnsResolver(3)   User Contributed Perl Documentation  Mail::SpamAssassin::DnsResolver(3)



NAME
       Mail::SpamAssassin::DnsResolver - DNS resolution engine

DESCRIPTION
       This is a DNS resolution engine for SpamAssassin, implemented in order to reduce file descriptor
       usage by Net::DNS and avoid a response collision bug in that module.

METHODS
       $res->load_resolver()
           Load the "Net::DNS::Resolver" object.  Returns 0 if Net::DNS cannot be used, 1 if it is
           available.

       $resolver = $res->get_resolver()
           Return the "Net::DNS::Resolver" object.

       $res->nameservers()
           Wrapper for Net::DNS::Resolver->nameservers to get or set list of nameservers

       $res->connect_sock()
           Re-connect to the first nameserver listed in "/etc/resolv.conf" or similar platform-dependent
           source, as provided by "Net::DNS".

       $res->get_sock()
           Return the "IO::Socket::INET" object used to communicate with the nameserver.

       $packet = new_dns_packet ($host, $type, $class)
           A wrapper for "Net::DNS::Packet::new()" which traps a die thrown by it.

           To use this, change calls to "Net::DNS::Resolver::bgsend" from:

               $res->bgsend($hostname, $type);

           to:

               $res->bgsend(Mail::SpamAssassin::DnsResolver::new_dns_packet($hostname, $type, $class));

       $id = $res->bgsend($host, $type, $class, $cb)
           Quite similar to "Net::DNS::Resolver::bgsend", except that when a response packet eventually
           arrives, and "poll_responses" is called, the callback sub reference $cb will be called.

           Note that $type and $class may be "undef", in which case they will default to "A" and "IN",
           respectively.

           The callback sub will be called with two arguments -- the packet that was delivered and an id
           string that fingerprints the query packet and the expected reply.  It is expected that a closure
           callback be used, like so:

             my $id = $self->{resolver}->bgsend($host, $type, undef, sub {
                   my $reply = shift;
                   my $reply_id = shift;
                   $self->got_a_reply ($reply, $reply_id);
                 });

           The callback can ignore the reply as an invalid packet sent to the listening port if the reply id
           does not match the return value from bgsend.

       $nfound = $res->poll_responses()
           See if there are any "bgsend" response packets ready, and return the number of such packets
           delivered to their callbacks.

       $res->bgabort()
           Call this to release pending requests from memory, when aborting backgrounded requests, or when
           the scan is complete.  "Mail::SpamAssassin::PerMsgStatus::check" calls this before returning.

       $packet = $res->send($name, $type, $class)
           Emulates "Net::DNS::Resolver::send()".

       $res->errorstring()
           Little more than a stub for callers expecting this from "Net::DNS::Resolver".

           If called immediately after a call to $res->send this will return "query timed out" if the
           $res->send DNS query timed out.  Otherwise "unknown error or no error" will be returned.

           No other errors are reported.

       $res->finish_socket()
           Reset socket when done with it.

       $res->finish()
           Clean up for destruction.



perl v5.8.8                                      2007-05-21               Mail::SpamAssassin::DnsResolver(3)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.