Hi, I announce EM-Udns (gem version 0.2.3):
EM-Udns is an async DNS resolver for EventMachine based on udns C
library. Having most of the code written in C, EM-Udns becomes very
fast. It can resolve DNS A, AAAA, PTR, MX, TXT, SRV and NAPTR records,
and can handle every kind of errors (domain/record not found, request
timeout, malformed response...).
The project in Github, including the README file:
https://github.com/ibc/em-udns
Important changes in 0.2.X releases are:
···
----------------------------------------------------------
- No exception is raised when performing a query (which is not
friendly within EventMachine), even if an error occurs (such a
malformed domain name or internal error). Instead
EM::Deferrable#errback (in EM::Udns::Query object) is called with new
error arguments (a Ruby Symbol):
- :dns_error_nxdomain - The domain name does not exist.
- :dns_error_nodata - The domain exists, but has no data of requested type.
- :dns_error_tempfail - Temporary error, the resolver nameserver was not
able to process our query or timed out.
- :dns_error_protocol - Protocol error, a nameserver returned malformed
reply.
- :dns_error_badquery - Bad query, name of dn is invalid.
- :dns_error_nomem - No memory available to allocate query structure.
- :dns_error_unknown - An unknown error has occurred.
--
Iñaki Baz Castillo
<ibc@aliax.net>