LibDNS API NLnet Labs
Kruislaan 419 Amsterdam 1098 VA The Netherlands miek@nlnetlabs.nl http://www.nlnetlabs.nl
NLnet Labs
Kruislaan 419 Amsterdam 1098 VA The Netherlands jelte@nlnetlabs.nl http://www.nlnetlabs.nl
NLnet Labs
Kruislaan 419 Amsterdam 1098 VA The Netherlands erik@nlnetlabs.nl http://www.nlnetlabs.nl
DNS Elite Hacking A small abstract will come here, TBD.
LibDNS (or lDNS) is modelled after the Net::DNS perl library. It has been shown that Net::DNS can be used vefficiently for programming DNS aware applications. We want to bring the same level of efficiency to C programmers. The lDNS API consist of two layers. The top-layer, this is what is actually exported to the application via the library. And the bottom-layer, this is what lDNS needs to compile and function.
Short intermezzo detailing differences with other libraries. Most important ones are the libc resolver interface (from BIND8) and the lwres_ interface from BIND9.
At its lowest level lDNS is only dependent on libc. It uses a few networking systems calls; socket, bind, send/recv and friends. Further more it is to be expected that lDNS will depend on OpenSSL for its cryptography. As said, lDNS is modelled after Net::DNS, therefor its application API looks very much like the one used for Net::DNS. Some modification are made ofcourse, because not all functionality of Perl can be caught in C. This API document was written by carefully looking at the documentation contained in the Net::DNS Perl module.