DNS::BL - Manage DNS black lists
use DNS::BL;
This class provides the services required to manage DNSBL data using this module hierarchy. It does so by implementing a series of methods, that perform the required function and when called in array context, return a two-element list, whose first element is a return code and its second element, is a diagnostic message.
In scalar context, only the constant is returned.
The following constants are defined:
Denotes a succesful operation.
A problem related to the connection or lack of, to the backend.
When inserting entries in the backend, a previous entry conflicts with this one.
When looking up entries in the backend, no suitable entry has been found.
A syntax error was detected by a callback handler.
Some other kind of error.
The following methods are implemented by this module:
->new()
This method creates a new DNS::BL object. No parameters are required.
DNS::BL
->parse($command)
This method tokenizes each line given in $command, loading and calling the appropiate modules to satisfy the request. As shipped, each command verb, usually the first word of a $command, will invoke a class from the DNS::BL::cmds::* hierarchy, which handles such commands. A summary of those is included in DNS::BL::cmds. Likely, you can provide your own commands by subclassing DNS::BL::cmds in your own classes.
$command
DNS::BL::cmds::*
DNS::BL::cmds
Note that this method supports comments, by prepending a pound sign. Most Perl-ish way.
When a command is invoked for the first time, the class is use()d. For example, the "foo" command would involve loading the DNS::BL::cmds::foo class.
use()
DNS::BL::cmds::foo
After this loading process, the class' execute() method is invoked. This is documented in DNS::BL::cmds.
execute()
->set($key, $value)
Set the value of a $key which is stored in the object itself, to the scalar $value.
$key
$value
->get($key)
Retrieve the scalar value associated to the given $key.
The following methods are really pointers meant to be replaced by the DNS::BL::cmds::connect::* classes invoked at runtime. The specific function of each function is discussed below (briefly) and in DNS::BL::cmds::connect.
The DNS::BL::cmds::connect::* classes must replace them by using the the accessors to store the reference to the function (or clusure), using the same name of the method, prepending an underscore.
->read($entry)
Given an $entry, retrieve all the DNS::BL::Entry objects contained in the IP address range denoted in its ->addr() method, stored in the connected backend. Its return value, is a list where the first element is the result code, the second is a message suitable for diagnostics. The rest of the elements, if any, are the matching entries found.
$entry
->addr()
connect
$entry should be a DNS::BL::Entry object.
->match($entry)
Given an $entry, retrieve all the DNS::BL::Entry objects that contain the IP address range denoted in its ->addr() method, stored in the connected backend. Its return value, is a list where the first element is the result code, the second is a message suitable for diagnostics. The rest of the elements, if any, are the matching entries found.
->write($entry)
Store the given DNS::BL::Entry object in the connected backend.
->erase($entry)
Delete all the DNS::BL::Entries from the connected backend, whose ->addr() network range falls entirely within the one given in $entry.
DNS::BL::Entries
->commit()
Commit all the changes to the backend. In some backends this is a no-op, but it should be invoked at the end of each command block.
None by default.
Original version; created by h2xs 1.22
First RC
Added an index to db connection method. This improves performance. Minor changes to other components. Added regression testing for IO commands.
Perl(1), DNS::BL::cmds, DNS::BL::Entry, DNS::BL::cmds::connect, DNS::BL::cmds::connect::*.
Luis Muñoz, <luismunoz@cpan.org>
Copyright 2004 by Luis Muñoz
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'Muñoz,'. Assuming CP1252
To install DNS::BL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DNS::BL
CPAN shell
perl -MCPAN -e shell install DNS::BL
For more information on module installation, please visit the detailed CPAN module installation guide.