NAME
Net::DNS::Method::Regexp - Build answers based on regular expressions
SYNOPSIS
use Net::DNS::Method::Regexp;
my $ans = new Net::DNS::Method::Regexp {
/^www.test.com\.? IN A$/ => {
answer => [ Net::DNS::RR->new("www.test.com. 10 IN A 192.168.0.1"),
Net::DNS::RR->new("www.test.com. 10 IN A 192.168.0.2") ],
authority => [],
additional => [],
question => [],
code => 'NOERROR',
ra => 1,
rd => 1,
aa => 1,
tc => 1,
return => NS_OK | NS_STOP
}
}
DESCRIPTION
This module provides a simple but powerful DNS answer generator based in the idea of matching a DNS question with a regular expression and building the answer using the supplied rules.
Its ->new()
method receives as its only parameter, a reference to a hash whose keys are regular expressions that must match the question section of a DNS packet. The value associated with these keys is a hash with the following possible pair - value entries:
-
The value stored on these keys is a reference to a list of Net::DNS::RR objects that will be
safe_push()
ed into the corresponding sections of the answer. This requires a fairly recent version of Net::DNS. - ra, rd, aa, tc
-
Specify a value for the corresponding call in the answer packet, setting the corresponding bit to the specified value. For instance, an authoritative answer should specify
aa =
1>. - code
-
Sets the answer's return code to the specified value. If left unspecified, the fault value of 'NOERROR' will be used.
- return
-
Specifies the return value at the Net::DNS::Method level. This can be used to allow further classes to attempt a match on the packet, abort the search, skip the answer altogether, etc.
If this is omitted, the default value of
NS_OK | NS_STOP
will be returning, causing the answer to be returned immediately.
Note that the regular expression match will always be attempted with extended syntax (ie, spaces are meaningless) and case sensitivity turned off. Also, matches are attempted from the longest regular expression to the shortest, allowing for a trivial "priority" mechanism to be used. You can simply add whitespace to your regular expression to have it execute before a shorter regular expression.
HISTORY
- 1.00
-
Original version; created by h2xs 1.20 with options
-ACOXfn Net::DNS::Method::Regexp -v 1.00
- 2.00
-
Repackaged for public distribution.
AUTHOR
Luis E. Munoz <luismunoz@cpan.org>
SEE ALSO
perl(1), Net::DNS::Method(3), Net::DNS(3), Net::DNS::RR(3).
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 197:
You forgot a '=back' before '=head1'