Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

CentOS 4.8

i386

Mail::SpamAssassin::DnsResolver(3pm)


Mail::SpamAssassin::DnsResolver

Mail::SpamAssassin::DnsResolver

NAME
DESCRIPTION
METHODS

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 three arguments -- the packet that was delivered, and an id string that fingerprints the query packet and the expected reply. The third argument is a timestamp (Unix time, floating point), captured at the time the packet was collected. It is expected that a closure callback be used, like so:

  my $id = $self->{resolver}->bgsend($host, $type, undef, sub {
        my ($reply, $reply_id, $timestamp) = @_;
        $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.



Mail::SpamAssassin::DnsResolver(3pm)