1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?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 efficiently 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, therefore its application API
looks very much like the one used for Net::DNS. Some modification are made
of course, 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" -->
|