110 lines
3.1 KiB
XML
110 lines
3.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
|
|
<!-- $Id -->
|
|
|
|
<?rfc toc="yes" ?>
|
|
<?rfc compact="yes" ?>
|
|
<?rfc editing="no" ?>
|
|
<?rfc iprnotified="no" ?>
|
|
<?rfc private="LibDNS API" ?>
|
|
|
|
<rfc ipr="none" category="info" docName="API-00.txt">
|
|
|
|
<front>
|
|
<title>LibDNS API</title>
|
|
<author initials="R." surname="Gieben" fullname="Miek Gieben">
|
|
<organization>NLnet Labs</organization>
|
|
<address>
|
|
<postal>
|
|
<street>Kruislaan 419</street>
|
|
<city>Amsterdam</city>
|
|
<code>1098 VA</code>
|
|
<country>The Netherlands</country>
|
|
</postal>
|
|
<email>miek@nlnetlabs.nl</email>
|
|
<uri>http://www.nlnetlabs.nl</uri>
|
|
</address>
|
|
</author>
|
|
<author initials="J." surname="Jansen" fullname="Jelte Jansen">
|
|
<organization>NLnet Labs</organization>
|
|
<address>
|
|
<postal>
|
|
<street>Kruislaan 419</street>
|
|
<city>Amsterdam</city>
|
|
<code>1098 VA</code>
|
|
<country>The Netherlands</country>
|
|
</postal>
|
|
<email>jelte@nlnetlabs.nl</email>
|
|
<uri>http://www.nlnetlabs.nl</uri>
|
|
</address>
|
|
</author>
|
|
<author initials="E." surname="Rozendaal" fullname="Erik Rozendaal">
|
|
<organization>NLnet Labs</organization>
|
|
<address>
|
|
<postal>
|
|
<street>Kruislaan 419</street>
|
|
<city>Amsterdam</city>
|
|
<code>1098 VA</code>
|
|
<country>The Netherlands</country>
|
|
</postal>
|
|
<email>erik@nlnetlabs.nl</email>
|
|
<uri>http://www.nlnetlabs.nl</uri>
|
|
</address>
|
|
</author>
|
|
<date month="January" year="2005" />
|
|
<keyword>DNS</keyword>
|
|
<keyword>Elite</keyword>
|
|
<keyword>Hacking</keyword>
|
|
<abstract>
|
|
<t>
|
|
A small abstract will come here, TBD.
|
|
</t>
|
|
</abstract>
|
|
</front>
|
|
|
|
<middle>
|
|
|
|
<section title="Introduction">
|
|
<t>
|
|
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.
|
|
</t>
|
|
<t>
|
|
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.
|
|
</t>
|
|
</section> <!-- "Introduction" -->
|
|
|
|
<section title="Differences With Other Libraries">
|
|
<t>
|
|
Short intermezzo detailing differences with other libraries. Most important
|
|
ones are the libc resolver interface (from BIND8) and the lwres_ interface
|
|
from BIND9.
|
|
</t>
|
|
</section> <!-- "Differences with other libraries" -->
|
|
|
|
<section title="Interfaces">
|
|
<t>
|
|
At its lowest level lDNS is only dependent on libc. It uses a
|
|
few networking systems calls; socket, bind, send/recv and friends.
|
|
</t>
|
|
<t>
|
|
Further more it is to be expected that lDNS will depend on OpenSSL for
|
|
its cryptography.
|
|
</t>
|
|
<t>
|
|
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.
|
|
</t>
|
|
|
|
<t>
|
|
This API document was written by carefully looking at the documentation
|
|
contained in the Net::DNS Perl module.
|
|
</t>
|
|
</section> <!-- "Interfaces" -->
|