diff options
Diffstat (limited to 'usr.sbin/unbound/ldns/doc')
-rw-r--r-- | usr.sbin/unbound/ldns/doc/API-header.xml | 109 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/API.xml | 462 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/CodingStyle | 64 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/TODO | 22 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/design.dox | 124 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/dns-lib-implementations | 56 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/doxyparse.pl | 288 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/function_manpages | 223 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/header.html | 10 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/libdns.css | 425 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/tutorial1_mx.dox | 98 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/tutorial2_zone.dox | 111 | ||||
-rw-r--r-- | usr.sbin/unbound/ldns/doc/tutorial3_signzone.dox | 206 |
13 files changed, 0 insertions, 2198 deletions
diff --git a/usr.sbin/unbound/ldns/doc/API-header.xml b/usr.sbin/unbound/ldns/doc/API-header.xml deleted file mode 100644 index a4cd081bee6..00000000000 --- a/usr.sbin/unbound/ldns/doc/API-header.xml +++ /dev/null @@ -1,109 +0,0 @@ -<?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" --> diff --git a/usr.sbin/unbound/ldns/doc/API.xml b/usr.sbin/unbound/ldns/doc/API.xml deleted file mode 100644 index 07007b9a295..00000000000 --- a/usr.sbin/unbound/ldns/doc/API.xml +++ /dev/null @@ -1,462 +0,0 @@ -<?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="libdns-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" --> - -<section title="RDF Structure"> -<t> -The rdf structure, the RData Field, is a type that contains the different -types in the rdata of an RR. Consider the following example: -<artwork> -example.com. IN MX 10 mx.example.com. -</artwork> -The "10 mx.example.com." is the rdata in this case. It consists of two -fields, "10" and "mx.example.com". These have the types (in this case) -LDNS_RDF_TYPE_INT8 and LDNS_RDF_TYPE_DNAME. -</t> -<t> -The following functions operate on this structure. -</t> -<t> -<list style="hanging"> -<t hangText="dns_rdf *ldns_rdf_new(uint16_t s, ldns_rdf_type t, uint8_t *d):"> -Create a new rdf structure. Return a pointer to it. -</t> -<t hangText="uint16_t ldns_rdf_size(ldns_rdf *r):"> -Get the size of a rdf structure. -</t> -<t hangText="void ldns_rdf_set_size(ldns_rdf *r, uint16_t):"> -Set the size of a rdf structure. -</t> -<t hangText="void ldns_rdf_set_type(ldns_rdf *r, ldns_rdf_type t):"> -Set the type of a rdf structure. -</t> -<t hangText="ldns_rdf_type ldns_rdf_get_type(ldns_rdf *r):"> -Get the type of a rdf structure. -</t> -<t hangText="void ldns_rdf_set_data(ldns_rdf *r, uint8_t *n):"> -Set the (binary/network order) data of a rdf structure. -</t> -<t hangText="uint8_t *ldns_rdf_data(ldns_rdf *r):"> -Get a pointer to the data in a rdf structure. -</t> -<t hangText="void ldns_rdf_free(ldns_rdf *r):"> -Free a rdf structure. -</t> -<t hangText="ldns_rdf_new_frm_str(uint8_t *s, ldns_rdf_type t):"> -Create a new rdf structure from a string and a specific rdf_type. -The type is needed to perform the correct conversion. -</t> -</list> -</t> -</section> <!-- "RDF Structure" --> - -<section title="RR Structure"> -<t> -These functions operate on ldns_rr structures. -</t> -<t> -<list style="hanging"> -<t hangText="ldns_rr *ldns_rr_new(void):"> -Returns a pointer to the newly created ldns_rr structure. -</t> -<t hangText="void ldns_rr_print(FILE *s, ldns_rr *r):"> -Prints the record to the stream s. -</t> -<t hangText="ldns_buffer ldns_rr_rdatastr(ldns_rr *r):"> -Returns a pointer to a ldns_buffer containing with string containing -RR-specific data. -</t> -<t hangText="ldns_rdf *ldns_rr_name(ldns_rr *r):"> -Returns the record's owner name as a ldns_rdf type. -</t> -<t hangText="ldns_rdf_rr_type ldns_rr_get_type(ldns_rr *r):"> -Returns the record's type. -</t> -<t hangText="ldns_rr_class ldns_rr_get_class(ldns_rr *r):"> -Returns the record's class. -</t> -<t hangText="uint32_t ldns_rr_get_ttl(ldns_rr *r):"> -Returns the record's time-to-live (TTL). -</t> -</list> -</t> - -<t> -TODO the 'set' functions of the 'get' -</t> -</section> <!-- "RR Structure" --> - -<section title="RR list Structure"> -<t> -In the DNS the atomic data type is an RRset. This is a list -of RRs with the same ownername, type and class. Net::DNS doesn't -have rrsets as a seperate object. -</t> -<t> -In lDNS we have the ldns_rr_list, which just holds a bunch of RR's. -No specific check are made on the RRs that can be put in such a list. -Special wrapper functions exist which allow the usage of ldns_rr_list -of real (RFC compliant) RR sets. -</t> -<t> -TODO: See rr.c -</t> -</section> <!-- "RR list Structure" --> - -<section title="Resolver Structure"> -<t> -<list style="hanging"> -<t hangText="ldns_resolver* ldns_resolver_new(void):"> -Create a new resolver structure and return the pointer to that. -</t> -<t hangText="uint8_t ldns_version(resolver *res):"> -Returns the version of lDNS. -</t> -<t hangText="ldns_pkt *ldns_mx(ldns_resolver *res, ldns_rdf_type *dname):"> -Returns a ldns_pkt representing the MX records -for the specified dname. Function is documented differently in Net::DNS. -Do we need stuff like this?? XXX -</t> -<t hangText="ldns_status ldns_resolver_domain(resolver *res, ldns_rdf -*domain):"> - Set the default domain for this resolver. This domain is added - when a query is made with a name without a trailing dot. - - -</t> -<t hangText="ldns_status ldns_resolver_nameserver_push(resolver *res, -ldns_rdf *ip):"> -Add a new nameserver to the resolver. These nameservers are queried - when a search() or query() is done. - -</t> -<t hangText="ldns_status ldns_resolver_searchlist_push(resolver *res, -ldns_rdf *domain):"> - Add a domain to the searchlist of a resolver. -</t> -<t hangText=" ldns_pkt * ldns_resolver_search(ldns_resolver *res, - ldns_rdf *domain, - ldns_rr_type *type, - ldns_class *class):"> - Perform a query. Try all the nameservers in the *res structure. Apply - the search list. And default domain. -If type is NULL it defaults to 'A', -If class is NULL it default to 'IN'. -</t> -<t hangText="ldns_pkt * ldns_resolver_query(ldns_resolver *res, - ldns_rdf *dom, - ldns_type *t, - ldns_class *cl):"> -Perform a query. Only the default domain is added. -If type is NULL it defaults to 'A', -If class is NULL it default to 'IN'. -</t> -<t hangText=" ldns_pkt * ldns_resolver_send(ldns_resolver *res, - ldns_rdf *domain, - ldns_type *type, - ldns_class *class):"> -No search list nor default domain is applied. Return a pointer to a ldns_pkt -structure with the information from the nameserver. -If type is NULL it defaults to 'A', -If class is NULL it default to 'IN'. -</t> -</list> -</t> -<t> -TODO XX Gazillion helper functions to set port, src-port, etc. etc. -</t> -</section> <!-- "Resolver Structure" --> - -<section title="Packet Structure"> -<t> -A packet structure (ldns_pkt) has five sections: -<list style="numbers"> -<t>The header section, a ldns_hdr structure.</t> -<t>The question section, a ldns_rr_list structure.</t> -<t>The answer section, a ldns_rr_list structure.</t> -<t>The authority section, a ldns_rr_list structure.</t> -<t>The additional section, a ldns_rr_list structure.</t> -</list> -</t> -<t> -<list style="hanging"> -<t hangText="Header Structure (ldns_hdr):"> -ldns_hdr represents the header section of a DNS packet. -</t> -<t hangText="Question Section (ldns_rr_list):"> -A list of RRs in the Question section of a DNS packet. -</t> -<t hangText="Answer Section (ldns_rr_list):"> -A list of RRs in the Question section of a DNS packet. -</t> -<t hangText="Authority Section (ldns_rr_list):"> -A list of RRs in the Question section of a DNS packet. -</t> -<t hangText="Additional Section (ldns_rr_list):"> -A list of RRs in the Question section of a DNS packet. -</t> -</list> -</t> - -<t> -<list style="hanging"> -<t hangText="ldns_pkt * ldns_pkt_new(void):"> -Creates a new empty packet. -</t> -<t hangText="ldns_buffer* ldns_pkt_data(ldns_pkt *pkt):"> -Returns the packet data in binary format, suitable for sending to a -nameserver. [XXX, suitable for sending to a NS?] -</t> -<t hangText="ldns_hdr *ldns_header(ldn_pkt *pkt):"> -Returns a ldns_hdr structure representing the header section of -the packet. -</t> -<t hangText="ldns_rr_list *ldns_question(ldns_pkt *pkt):"> - Returns a pointer to a ldns_rr_list representing the question section -of the packet. -</t> -<t hangText="ldns_rr_list *ldns_answer(ldns_pkt *pkt):"> - Returns a pointer to a ldns_rr_list representing the answer section of -the packet. - -</t> -<t hangText=" ldns_rr_list *ldns_authority(ldns_pkt *pkt):"> -Returns a pointer to a ldns_rr_list representing the authority section -of the packet. - -</t> -<t hangText=" ldns_rr_list *ldns_additional(ldns_pkt *pkt):"> -Returns a pointer to a ldns_rr_list of representing the additional -section of the packet. - -</t> -<t hangText=" void ldsn_pkt_print(ldns_pkt *pkt):"> -Prints the packet data on the standard output in an ASCII format similar -to that used in DNS zone files. See RFC1035. - -</t> -<t hangText="ldns_buffer *ldns_pkt_string(ldns_pkt *pkt):"> -Returns a ldns_buffer containing the string representation of the packet. - -</t> -<t hangText="ldns_rdf* ldns_pkt_answerfrom(ldns_pkt *pkt):"> -Returns the IP address from which we received this packet. User-created -packets will return NULL. - -</t> -<t hangText="uint16_t ldns_pkt_answersize(ldns_pkt *pkt):"> -Returns the size of the packet in bytes as it was received from a -nameserver. User-created packets will return 0. [XXX -user-created??] - -</t> -<t hangText="ldns_status ldns_push(ldns_pkt *pkt, ldns_pkt_section section, -ldns_rr *rr):"> -Adds *rr to the specified section of the packet. Return LDNS_STATUS_OK -on success, LDNS_STATUS_ERR otherwise. - -</t> -<t hangText="ldns_status ldns_unique_push(ldns_pkt *pkt, ldns_pkt_section -section, ldns_rr *rr):"> -Adds *rr to the specified section of the packet provided that the RR -does not already exist in the packet. Return LDNS_STATUS_OK -on success, LDNS_STATUS_ERR otherwise. -</t> -<t hangText="ldns_rr *ldns_pop(ldns_pkt, ldns_pkt_section):"> -Removes a RR from the specified section of the packet. Returns NULL if -no RR's could be popped. -</t> -<t hangText="ldns_rr_list *ldns_pkt_rrset(ldns_pkt *pkt,...):"> -Retrieve all RRs in a packet matching certain criteria. XXX function needs -to be specified better. -</t> -<t hangText="void *ldns_pkt_print(FILE *s, ldns_pkt *p):"> -Print packet p to stream s. -</t> - -</list> -</t> -</section> <!-- "Packet Structure" --> - -<section title="Specific RR Structures"> -<t> -Some resource records can have special access function no other RR has. -Those are detailed here. XXX TODO don't exist (yet?). -</t> -</section> <!-- "Specific RR Structures" --> - -<section title="Exported Defines and Macros"> -<t> -insert your long list here. -</t> -</section> <!-- "Exported defines and macros" --> - -<section title="Examples"> -<t> -A small example, which queries a nameserver on localhost -to diplay the MX records for miek.nl. -</t> - -<t> -<figure> -<artwork> -/** - * An example ldns program - * In semi-C code - * - * Setup a resolver - * Query a nameserver - * Print the result - */ - -#include <ldns.h> - -int -main(void) -{ - ldns_resolver *res; - ldns_rdf *default_dom; - ldns_rdf *nameserver; - ldns_rdf *qname; - ldns_pkt *pkt; - - /* init */ - res = ldns_resolver_new(); - if (!res) - return 1; - - /* create a default domain and add it */ - default_dom = ldns_rdf_new_frm_str("miek.nl.", LDNS_RDF_TYPE_DNAME); - nameserver = ldns_rdf_new_frm_str("127.0.0.1", LDNS_RDF_TYPE_A); - - if (ldns_resolver_domain(res, default_dom) != LDNS_STATUS_OK) - return 1; - if (ldns_resolver_nameserver_push(res, nameserver) != LDNS_STATUS_OK) - return 1; - - /* setup the question */ - qname = ldns_rdf_new_frm_str("www", LDNS_RDF_TYPE_DNAME); - - /* fire it off. "miek.nl." will be added */ - pkt = ldns_resolver_query(res, qname, LDNS_RR_TYPE_MX, NULL); - - /* print the resulting pkt to stdout */ - ldns_pkt_print(stdout, pkt); - - return 0; -} -</artwork> -</figure> -</t> -</section> <!-- title="Short Example" --> - -</middle> -<back> -</back> -</rfc> diff --git a/usr.sbin/unbound/ldns/doc/CodingStyle b/usr.sbin/unbound/ldns/doc/CodingStyle deleted file mode 100644 index a326e5c3f99..00000000000 --- a/usr.sbin/unbound/ldns/doc/CodingStyle +++ /dev/null @@ -1,64 +0,0 @@ -The libdns coding style guide - -* Use of tabs (real tabs, 8 positions long) -* Spaces only after comma's, and in between operators. - And after keywords (if, while, for) -* Underscores to make long names readable -* prefix (exported) identifiers with 'ldns_' -* no unneeded parentheses after 'return' -* always curly brackets in if-statements -* use defines for (weird) constants, and masks -* type 'bool', constants 'true'/'false'. Don't compare bools for - equality. -* always use LDNS_MALLOC/FREE etc, or the new/free/deep_free functions -* buffer can scale, so don't alloc the max size, but the min size -* make lint (uses splint) is your friend - - -* Return values: - - status code (structure to fill is usually passed as a first argument) - - new/pointer: return pointer or NULL on error - - 'read' functions: ldns_status wire2thing(uint8_t *p, size_t max, - size_t pos, *thing); - - void functions like ldns_rr_free - - bool functions - -* Parameter sequence: (dest, [dest_meta, ] src, [src_meta] etc) -* structure/union field names start with _ when "private" -* enum for rcode, opcode, types etc, - example: - enum ldns_rcode { - LDNS_RCODE_OK = 0, - ... = ., - LDNS_RCODE_FIRST = LDNS_RCODE_OK, - LDNS_RCODE_LAST = 15, - LDNS_RCODE_COUNT = LDNS_RCODE_LAST + 1 - } -* Everything by reference, all data structures an optional _clone() function -* arrays: ps[] with size_t p_count for the number of elements -* _size for size in bytes -* _free and _clone copies perform deep free/copy. - -* Standard abbreviations, don't abbreviate other names: - - id = identity - rr = resource record - rrset = resource record set - rdata = resource data - rdf = resource data field - rcode = result code - qr = query/resource bit - aa = authoritative answer - tc = truncated - rd = recursion disabled - cd = checking disabled - ra = recursion available - ad = authentic data - qdcount = question section count - ancount = answer section count - nscount = authority section count - arcount = additional section count - -ldns-<tools> -* use exit(EXIT_FAILURE)/ exit(SUCCES) -* diff --git a/usr.sbin/unbound/ldns/doc/TODO b/usr.sbin/unbound/ldns/doc/TODO deleted file mode 100644 index 2d2e9dcdb33..00000000000 --- a/usr.sbin/unbound/ldns/doc/TODO +++ /dev/null @@ -1,22 +0,0 @@ -TODO - -Features: -* Multi-line zone file parsing -* Configure option for not printing DNSSEC RR comments -* HMAC and MD5 without OpenSSL -* HIP RR support -* Parse 'search' attribute in /etc/resolv.conf -* Make use of automake (Bug #173) -* ./configure --with-tools --with-drill (Bug #264) -* Drill: print appropriate DS RRs (relates to Bug #355) -* ldns-signzone optout to be really optout -* Compression when generating wireformat. Preferably with a configurable - policy: refer only backwards, case sensitivity, only refer to other owner - names, etc. - -Bugfixes: -* Bug #279: fix return values for net.h functions, and related: make return - values for functions that cannot return memory-failure today. Needs medium - version increase because of API change. -* Long out-standing packaging bugs (debian) -* Lazy ABI diff --git a/usr.sbin/unbound/ldns/doc/design.dox b/usr.sbin/unbound/ldns/doc/design.dox deleted file mode 100644 index a4cbeadb8f9..00000000000 --- a/usr.sbin/unbound/ldns/doc/design.dox +++ /dev/null @@ -1,124 +0,0 @@ -/** \page design Design - -The following image shows the various modules of libdns and their -functionality. - -\image html libdnsoverview.png - -\section central_structures Central structures - - - \ref ldns_pkt A DNS Packet, which can contain a query, answers, and additional information. - - \ref ldns_rr A Resource Record, which holds a bit of information about a specific domain name. - - \ref ldns_rdf An RDATA field, every Resource Record contains one or more RDATA fields, depending on the type of RR. These are the 'basic types' of DNS data. - - \ref ldns_rr_list A list of resource records - - \ref ldns_zone A representation of a DNS Zone. - -The actual structure definitions are named \c ldns_struct_<name> which are all typedeffed to \c ldns_<name> - - -A DNS Resource record looks like this: - -<pre> -nlnetlabs.nl. 600 IN MX 10 open.nlnetlabs.nl. - \ \ \ \ \ / - owner ttl class type \ rdf[] / - (rdf) (uint32_t) (rr_class) (rr_type) - 10 := rdf[0] - open.nlnetlabs.nl. := rdf[1] -</pre> - -* Owner: -The owner name is put in an \c ldns_rdf structure, which is a normal rdata field but always -has the type LDNS_RDF_TYPE_DNAME. - -An \ref ldns_rdf structure has 3 members; the size, the type of rdata and a void * -pointer to the data. The data is always in uncompressed wireformat. - -The RSH (rdata) is put in an array of rdf's (in this case 2). - -The entire resource record is put in a RR structure, which has -the fields described above (under the RR): - - owner (nlnetlabs.nl.) - - ttl (600) - - class (LDNS_RR_CLASS_IN: 'IN') - - type (LDNS_RR_TYPE_MX: 'MX') - - rd_count (2) - - rdata_fields[rd_count] - - rdf[0] (10) - - rdf[1] (open.nlnetlabs.nl.) - -* RR list structure: -An RR list structure is simply a structure with a counter -and an array of RR structures. Different kinds of RR's can -be grouped together this way. - -* RRset structure: -An RRset structure is an RR list structure, but its accessor -function checks if the \c ldns_rr structures in there are: - - from the same type - - have the same TTL - - have the same ownername - -This is the RFC definition of an RRset. - -* pkt structure: -A pkt structure consists out of a header structure where -packet specific flags are kept, TC, RD, IP from the server which -sent the packet, etc. -Further more it is divided in 4 sections: question, authority, answer -and additional. - -All four sections have the type RRlist that simply hold a list of RR's - - -\section wire_module Wire module and central structures Interface - -As the WIRE module takes care of the compression/decompression -it needs a buffer which holds all the binary DNS data. -All functions will operate on such a buffer to extract specific -information which is then stored in RR structures. - - -\section resolver_module Resolver module and central structures Interface - -The resolver module always returns a pkt structure. Either with -the answer or a SERVFAIL pkt. - -The exact function-call parameters have not yet been -decided on. - -Also the resolver module will need to access some of the -to_wire and from_wire function to creates ldn_pkt's from -the data it receives (arrow not drawn). - - -\section str_module str module and central structures Interface - -Convert to and from strings. This module could be used -to read in a zone file (list of RRs) and convert the text strings to -the format used by ldns. Or the other way around. - - -\section net_module Net module and resolver module interface - -The resolver module will get a packet and will mold it so that -it can be sent off to a nameserver. -It might need to interface with the wire module (arrow not drawn). - -\section Net module and OS/libc interface -OS/network calls will be used here. The Net module is the only part of -the library where the underlying OS matters. - -\section Client program ldns interface -Any client program will have access to -- Wire module -- Central structures -- Resolver module -- str module (arrow not drawn in the above figure) - -\section dnssec_module DNSSEC module -The DNSSEC types are handled in the RR module, but the crypto -routines are contained in this module. This module will depend -on OpenSSL for the crypto routines. - -*/ diff --git a/usr.sbin/unbound/ldns/doc/dns-lib-implementations b/usr.sbin/unbound/ldns/doc/dns-lib-implementations deleted file mode 100644 index 18d01afb30f..00000000000 --- a/usr.sbin/unbound/ldns/doc/dns-lib-implementations +++ /dev/null @@ -1,56 +0,0 @@ -http://www.posadis.org/projects/poslib.php -Poslib DNS library - Default branch - -http://www.posadis.org/poslib?DokuWiki=2b00f9da090fb9d4ad3d6e98b9c2f61f - -Poslib is the C++ library for applications using the Domain Name System -that is used by all Posadis tools, including the Posadis DNS server and the -Zoneedit and Dnsquery tools. It consists of a library for creating client -applications using DNS, and a server library for DNS servers. - - -FireDNS Library -http://firestuff.org/projects/firedns -FireDNS Library ---------------- -(c) 2002 Ian Gulliver under the GNU Public License, Version 2. -See GPL for more details. - -From libfiredns(3): - -libfiredns is a library for handling asynchronous DNS -requests. It provides a very simple interface for sending -requests and parsing reponses, as well as low-timeout -blocking functions. libfiredns functions have much lower -timeouts than the stock functions and tend to be faster -because they send requests to all configured system -nameservers at the same time. - -If you have questions or comments, you can reach me at -ian@penguinhosting.net. - - - -skadns - - Skadns is Kind of an Asynchronous DNS client software. - - * Kind of: it's small. Really small. But it just works. - * Asynchronous: all DNS operations are non-blocking. - * DNS client software: it's a DNS client, what you may know as a "stub resolver". To perform full DNS resolution, you will still need a full resolver like dnscache. - - Similar work - - * ares is an asynchronous DNS resolver library with a nice interface - * and more configuration options than skadns (and a very reasonable - * size). Use it if you find that skadns lacks configurability (you - * shouldn't need more than it provides, but well, you're the user). - * Yet it doesn't hide the DNS internals as opaquely as skadns does, - * giving you a bunch of fds to select() on instead of just one. - * adns works fine, and is small for a GNU project. Impressive. But - * the interface is still too complex and much too generic - the - * usual problems with GNU software. - - -ADNS; documentation scares - is it still active -simular aims - different ways diff --git a/usr.sbin/unbound/ldns/doc/doxyparse.pl b/usr.sbin/unbound/ldns/doc/doxyparse.pl deleted file mode 100644 index 218825fe1b0..00000000000 --- a/usr.sbin/unbound/ldns/doc/doxyparse.pl +++ /dev/null @@ -1,288 +0,0 @@ -#!/usr/bin/perl - -# Doxygen is usefull for html documentation, but sucks -# in making manual pages. Still tool also parses the .h -# files with the doxygen documentation and creates -# the man page we want -# -# 2 way process -# 1. All the .h files are processed to create in file in which: -# filename | API | description | return values -# are documented -# 2. Another file is parsed which states which function should -# be grouped together in which manpage. Symlinks are also created. -# -# With this all in place, all documentation should be autogenerated -# from the doxydoc. - -use Getopt::Std; - -my $state; -my $description; -my $struct_description; -my $key; -my $return; -my $param; -my $api; -my $const; - -my %description; -my %api; -my %return; -my %options; -my %manpages; -my %see_also; - -my $BASE="doc/man"; -my $MAN_SECTION = "3"; -my $MAN_HEADER = ".TH ldns $MAN_SECTION \"30 May 2006\"\n"; -my $MAN_MIDDLE = ".SH AUTHOR -The ldns team at NLnet Labs. Which consists out of -Jelte Jansen and Miek Gieben. - -.SH REPORTING BUGS -Please report bugs to ldns-team\@nlnetlabs.nl or in -our bugzilla at -http://www.nlnetlabs.nl/bugs/index.html - -.SH COPYRIGHT -Copyright (c) 2004 - 2006 NLnet Labs. -.PP -Licensed under the BSD License. There is NO warranty; not even for -MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. -"; -my $MAN_FOOTER = ".SH REMARKS -This manpage was automaticly generated from the ldns source code by -use of Doxygen and some perl. -"; - -getopts("m:",\%options); -# if -m manpage file is given process that file -# parse the file which tells us what manpages go together -my $functions, $see_also; -if (defined $options{'m'}) { - # process - open(MAN, "<$options{'m'}") or die "Cannot open $options{'m'}"; - # it's line based: - # func1, func2, .. | see_also1, see_also2, ... - while(<MAN>) { - chomp; - if (/^#/) { next; } - if (/^$/) { next; } - ($functions, $see_also) = split /[\t ]*\|[\t ]*/, $_; - #print "{$functions}\n"; - #print "{$see_also}\n"; - my @funcs = split /[\t ]*,[\t ]*/, $functions; - my @also = split /[\t ]*,[\t ]*/, $see_also; - $manpages{$funcs[0]} = \@funcs; - $see_also{$funcs[0]} = \@also; - #print "[", $funcs[0], "]\n"; - } - close(MAN); -} else { - print "Need -m file to process the .h files\n"; - exit 1; -} - -# 0 - somewhere in the file -# 1 - in a doxygen par -# 2 - after doxygen, except funcion - -# create our pwd -mkdir "doc"; -mkdir "doc/man"; -mkdir "doc/man/man$MAN_SECTION"; - -$state = 0; -my $i; -my @lines = <STDIN>; -my $max = @lines; - -while($i < $max) { - $typedef = ""; - if ($lines[$i] =~ /^typedef struct/ and $lines[$i + 1] =~ /^struct/) { - # move typedef to below struct - $typedef = $lines[$i]; - $j = $i; - while ($lines[$j] !~ /}/) { - $lines[$j] = $lines[$j+1]; - $j++; - } - $lines[$j] = $lines[$j+1]; - $lines[$j + 1] = $typedef; - } - - $cur_line = $lines[$i]; - chomp($cur_line); - if ($cur_line =~ /^\/\*\*[\t ]*$/) { - # /** Seen - #print "Comment seen! [$cur_line]\n"; - $state = 1; - undef $description; - undef $struct_description; - $i++; - next; - } - if ($cur_line =~ /\*\// and $state == 1) { - #print "END Comment seen!\n"; - $state = 2; - $i++; - next; - } - - if ($state == 1) { - # inside doxygen - $cur_line =~ s/\\/\\\\/g; - $cur_line =~ s/^[ \t]*\* ?//; - $description = $description . "\n" . $cur_line; - #$description = $description . "\n.br\n" . $cur_line; - } - if ($state == 2 and $cur_line =~ /const/) { - # the const word exists in the function call - #$const = "const"; - #s/[\t ]*const[\t ]*//; - } else { - #undef $const; - } - - if ($cur_line =~ /^INLINE/) { - $cur_line =~ s/^INLINE\s*//; - while ($cur_line !~ /{/) { - $i++; - $cur_line .= " ".$lines[$i]; - $cur_line =~ s/\n//; - } - $cur_line =~ s/{/;/; - } - - if ($cur_line =~ /^[^#*\/ ]([\w\*]+)[\t ]+(.*?)[({](.*)\s*/ and $state == 2) { - while ($cur_line !~ /\)\s*;/) { - $i++; - $cur_line .= $lines[$i]; - chomp($cur_line); - $cur_line =~ s/\n/ /g; - $cur_line =~ s/\s\s*/ /g; - } - $cur_line =~ /([\w\* ]+)[\t ]+(.*?)\((.*)\)\s*;/; - # this should also end the current comment parsing - $return = $1; - $key = $2; - $api = $3; - # sometimes the * is stuck to the function - # name instead to the return type - if ($key =~ /^\*/) { - #print"Name starts with *\n"; - $key =~ s/^\*//; - if (defined($const)) { - $return = $const . " " . $return . '*'; - } else { - $return = $return . '*'; - } - } - $description =~ s/\\param\[in\][ \t]*([\*\w]+)[ \t]+/.br\n\\fB$1\\fR: /g; - $description =~ s/\\param\[out\][ \t]*([\*\w]+)[ \t]+/.br\n\\fB$1\\fR: /g; - $description =~ s/\\return[ \t]*/.br\nReturns /g; - - $description{$key} = $description; - $api{$key} = $api; - $return{$key} = $return; - undef $description; - undef $struct_description; - $state = 0; - } elsif ($state == 2 and ( - $cur_line =~ /^typedef\sstruct\s(\w+)\s(\w+);/ or - $cur_line =~ /^typedef\senum\s(\w+)\s(\w+);/)) { - $struct_description .= "\n.br\n" . $cur_line; - $key = $2; - $struct_description =~ s/\/\*\*\s*(.*?)\s*\*\//\\fB$1:\\fR/g; - $description{$key} = $struct_description; - $api{$key} = "struct"; - $return{$key} = $1; - undef $description; - undef $struct_description; - $state = 0; - } else { - $struct_description .= "\n.br\n" . $cur_line; - } - $i++; -} - -# create the manpages -foreach (keys %manpages) { - $name = $manpages{$_}; - $also = $see_also{$_}; - - $filename = @$name[0]; - $filename = "$BASE/man$MAN_SECTION/$filename.$MAN_SECTION"; - - my $symlink_file = @$name[0] . "." . $MAN_SECTION; - -# print STDOUT $filename,"\n"; - open (MAN, ">$filename") or die "Can not open $filename"; - - print MAN $MAN_HEADER; - print MAN ".SH NAME\n"; - print MAN join ", ", @$name; - print MAN "\n\n"; - print MAN ".SH SYNOPSIS\n"; - - print MAN "#include <stdint.h>\n.br\n"; - print MAN "#include <stdbool.h>\n.br\n"; - - print MAN ".PP\n"; - print MAN "#include <ldns/ldns.h>\n"; - print MAN ".PP\n"; - - foreach (@$name) { - $b = $return{$_}; - $b =~ s/\s+$//; - if ($api{$_} ne "struct") { - print MAN $b, " ", $_; - print MAN "(", $api{$_},");\n"; - print MAN ".PP\n"; - } - } - - print MAN "\n.SH DESCRIPTION\n"; - foreach (@$name) { - print MAN ".HP\n"; - print MAN "\\fI", $_, "\\fR"; - if ($api{$_} ne "struct") { - print MAN "()"; - } -# print MAN ".br\n"; - print MAN $description{$_}; - print MAN "\n.PP\n"; - } - - print MAN $MAN_MIDDLE; - - if (defined(@$also)) { - print MAN "\n.SH SEE ALSO\n\\fI"; - print MAN join "\\fR, \\fI", @$also; - print MAN "\\fR.\nAnd "; - print MAN "\\fBperldoc Net::DNS\\fR, \\fBRFC1034\\fR, -\\fBRFC1035\\fR, \\fBRFC4033\\fR, \\fBRFC4034\\fR and \\fBRFC4035\\fR.\n"; - } else { - print MAN ".SH SEE ALSO -\\fBperldoc Net::DNS\\fR, \\fBRFC1034\\fR, -\\fBRFC1035\\fR, \\fBRFC4033\\fR, \\fBRFC4034\\fR and \\fBRFC4035\\fR.\n"; - } - - print MAN $MAN_FOOTER; - - # create symlinks - chdir("$BASE/man$MAN_SECTION"); - foreach (@$name) { - print STDERR $_,"\n"; - my $new_file = $_ . "." . $MAN_SECTION; - if ($new_file eq $symlink_file) { - next; - } - #print STDOUT "\t", $new_file, " -> ", $symlink_file, "\n"; - symlink $symlink_file, $new_file; - } - chdir("../../.."); # and back, tricky and fragile... - close(MAN); -} diff --git a/usr.sbin/unbound/ldns/doc/function_manpages b/usr.sbin/unbound/ldns/doc/function_manpages deleted file mode 100644 index 15706fada57..00000000000 --- a/usr.sbin/unbound/ldns/doc/function_manpages +++ /dev/null @@ -1,223 +0,0 @@ -# first function name will be the real name of the manpage -# other names are aliases (symlinks) -# all functions specified on the same line are included in the -# same manual page. We cannot deal with linebreaks! -# function named after the pipe `|' are put in the "see also" section - -# functions that must be included, separated by commas - -### host2wire.h -# conversion functions -ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire | ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf -# lower level conversions, some are from host2str.h -ldns_pkt2buffer_str, ldns_pktheader2buffer_str, ldns_rr2buffer_str, ldns_rr_list2buffer_str, ldns_rdf2buffer_str, ldns_key2buffer_str, ldns_pkt2buffer_wire, ldns_rr2buffer_wire, ldns_rdf2buffer_wire, ldns_rrsig2buffer_wire, ldns_rr_rdata2buffer_wire | ldns_pkt2str, ldns_rr2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str -### /host2wire.h - -### host2str.h -ldns_rr2str, ldns_pkt2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str | ldns_rr_print, ldns_rdf_print, ldns_pkt_print, ldns_rr_list_print, ldns_resolver_print, ldns_zone_print -ldns_rr_print, ldns_rdf_print, ldns_pkt_print, ldns_rr_list_print, ldns_resolver_print, ldns_zone_print | ldns_rr2str, ldns_rdf2str, ldns_pkt2str, ldns_rr_list2str, ldns_key2str -### /host2str.h - -### host2str.h -# and even lower -ldns_rdf2buffer_str_a, ldns_rdf2buffer_str_aaaa, ldns_rdf2buffer_str_str, ldns_rdf2buffer_str_b64, ldns_rdf2buffer_str_hex, ldns_rdf2buffer_str_type, ldns_rdf2buffer_str_class, ldns_rdf2buffer_str_alg, ldns_rdf2buffer_str_loc, ldns_rdf2buffer_str_unknown, ldns_rdf2buffer_str_nsap, ldns_rdf2buffer_str_wks, ldns_rdf2buffer_str_nsec, ldns_rdf2buffer_str_period, ldns_rdf2buffer_str_tsigtime, ldns_rdf2buffer_str_apl, ldns_rdf2buffer_str_int16_data, ldns_rdf2buffer_str_int16, ldns_rdf2buffer_str_ipseckey -### /host2str.h - -### wire2host.h -# wirefunctions -ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf, ldns_wire2dname | ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire, ldns_dname2wire -ldns_buffer2pkt_wire -### /wire2host.h - -### dname.h -ldns_dname_left_chop, ldns_dname_label_count | ldns_dname -ldns_dname2canonical | ldns_dname -ldns_dname_cat_clone, ldns_dname_cat | ldns_dname -ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data | ldns_dname, ldns_pkt_query_new_frm_str, ldns_rdf_new_frm_str, ldns_rr_new_frm_str -ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label | ldns_dname -ldns_dname_compare, ldns_dname_interval | ldns_dname_is_subdomain | ldns_dname -ldns_dname | ldns_dname_left_chop, ldns_dname_label_count, ldns_dname2canonical, ldns_dname_cat, ldns_dname_cat_clone, ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data, ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label, ldns_dname_compare, ldns_dname_interval -### /dname.h - -### rdata.h -ldns_rdf, ldns_rdf_type | ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data, ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare, ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t, ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t -ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data | ldns_rdf -ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare | ldns_rdf -ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print | ldns_rdf -ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t | ldns_rdf -ldns_rdf_address_reverse | ldns_rdf -ldns_octet | ldns_rdf -# why is this in rdata.h? -ldns_str2period -### /rdata.h - -### higher.h -ldns_get_rr_list_addr_by_name, ldns_get_rr_list_name_by_addr | ldns_rr_list, ldns_rr -ldns_get_rr_list_hosts_frm_fp, ldns_get_rr_list_hosts_frm_file | ldns_rr_list, ldns_rr, ldns_get_rr_list_hosts_frm_fp_l -ldns_get_rr_list_hosts_frm_fp_l | ldns_rr_list -ldns_getaddrinfo -### /higher.h - -# -### dnssec.h -# -ldns_calc_keytag, ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5, ldns_key_rr2ds, ldns_key_buf2dsa, ldns_key_buf2rsa | ldns_key, ldns_sign_public, ldns_zone_sign, ldns_verify, ldns_verify_rrsig - -# algs -ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5 | ldns_key, ldns_sign_public, ldns_zone_sign, ldns_verify, ldns_verify_rrsig - -# tsig -ldns_pkt_tsig_verify, ldns_pkt_tsig_sign | ldns_key - -# verify -ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_keylist, ldns_verify_rrsig_keylist_notime, ldns_verify_notime | ldns_verify_rrsig_evp | ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5, ldns_sign_public, ldns_zone_sign, ldns_key - -# convert -ldns_key_buf2dsa, ldns_key_buf2rsa | ldns_key_rr2ds -ldns_key_rr2ds | ldns_key -ldns_create_nsec | ldns_sign_public - -# signing -ldns_sign_public | ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1, ldns_verify, ldns_verify_rrsig, ldns_key -ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1 | ldns_sign_public -ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3 | ldns_zone_sign, ldns_zone_sign_nsec3 | ldns_sign_public, ldns_key, ldns_init_random -ldns_init_random | ldns_sign_public, ldns_key -ldns_pkt_verify | ldns_verify, ldns_sign_public, ldns_zone_sign - -# new family of dnssec functions -ldns_dnssec_zone, ldns_dnssec_name, ldns_dnssec_rrs, ldns_dnssec_rrsets | ldns_dnssec_zone_new, ldns_dnssec_name_new, ldns_dnssec_rrs_new, ldns_dnssec_rrsets_new -ldns_dnssec_zone_find_rrset, ldns_dnssec_zone_new, ldns_dnssec_zone_free, ldns_dnssec_zone_add_rr, ldns_dnssec_zone_names_print, ldns_dnssec_zone_print, ldns_dnssec_zone_add_empty_nonterminals | ldns_dnssec_zone -ldns_dnssec_name_new, ldns_dnssec_name_new_frm_rr, ldns_dnssec_name_free, ldns_dnssec_name_name, ldns_dnssec_name_set_name, ldns_dnssec_name_set_nsec, ldns_dnssec_name_cmp, ldns_dnssec_name_add_rr, ldns_dnssec_name_find_rrset, ldns_dnssec_name_print | ldns_dnssec_zone -ldns_dnssec_rrsets_new, ldns_dnssec_rrsets_free, ldns_dnssec_rrsets_type, ldns_dnssec_rrsets_set_type, ldns_dnssec_rrsets_add_rr, ldns_dnssec_rrsets_print | ldns_dnssec_zone -ldns_dnssec_rrs_new, ldns_dnssec_rrs_free, ldns_dnssec_rrs_add_rr, ldns_dnssec_rrs_print | ldns_dnssec_zone - -# verification -ldns_dnssec_data_chain, ldns_dnssec_data_chain_struct, ldns_dnssec_trust_tree | ldns_dnssec_data_chain_new, ldns_dnssec_trust_tree_new, ldns_dnssec_verify_denial -ldns_dnssec_data_chain_new, ldns_dnssec_data_chain_free, ldns_dnssec_data_chain_deep_free, ldns_dnssec_build_data_chain, ldns_dnssec_data_chain_print | ldns_dnssec_data_chain -ldns_dnssec_trust_tree_new, ldns_dnssec_trust_tree_free, ldns_dnssec_trust_tree_depth, ldns_dnssec_derive_trust_tree, ldns_dnssec_trust_tree_contains_keys, ldns_dnssec_trust_tree_print, ldns_dnssec_trust_tree_print_sm, ldns_dnssec_trust_tree_add_parent, ldns_dnssec_derive_trust_tree_normal_rrset, ldns_dnssec_derive_trust_tree_dnskey_rrset, ldns_dnssec_derive_trust_tree_ds_rrset, ldns_dnssec_derive_trust_tree_no_sig | ldns_dnssec_data_chain, ldns_dnssec_trust_tree -ldns_dnssec_verify_denial, ldns_dnssec_verify_denial_nsec3 | ldns_dnssec_trust_tree, ldns_dnssec_data_chain - -# new signing functions -ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3, ldns_dnssec_zone_mark_glue, ldns_dnssec_name_node_next_nonglue, ldns_dnssec_zone_create_nsecs, ldns_dnssec_remove_signatures, ldns_dnssec_zone_create_rrsigs | ldns_dnssec_zone - -### /dnssec.h - -### dnskey.h -ldns_key_new | ldns_key, ldns_key_list_new -ldns_key_new_frm_algorithm, ldns_key_new_frm_fp, ldns_key_new_frm_fp_l | ldns_key -ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l | ldns_key_new_frm_fp, ldns_key -ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l | ldns_key_new_frm_fp, ldns_key -ldns_key_list_new | ldns_key_new, ldns_key -# access, write -ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_algo_supported | ldns_key_push_key, ldns_key -ldns_key_list_push_key | ldns_key_list_pop_key, ldns_key -ldns_key_list_pop_key | ldns_key_list_push_key, ldns_key -# access, read -ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags | ldns_key -# convert -ldns_key2rr | ldns_key -ldns_key_free, ldns_key_deep_free, ldns_key_list_free | ldns_key -# -ldns_key_print | ldns_key_new, ldns_key -ldns_key | ldns_key_new, ldns_key_new_frm_algorithm,ldns_key_new_frm_fp,ldns_key_new_frm_fp_l, ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l, ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l, ldns_key_list_new, ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_list_push_key, ldns_key_list_pop_key, ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags, ldns_key2rr, ldns_key_free, ldns_key_deep_free, ldns_key_list_free, ldns_key_print -### /dnskey.h - -### MIEK TOT HIER TOT HIER - -# lists -ldns_key_list_new, ldns_key_list_push_key, ldns_key_list_pop_key, ldns_key_list_key_count, ldns_key_list_key | ldns_key_list, ldns_key -ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key | ldns_key_list, ldns_key - -# gets/sets -ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags | ldns_key -ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count | ldns_key - -# errr.h -ldns_get_errorstr_by_id | ldns_status -ldns_status | ldns_get_errorstr_by_id - -### net.h -ldns_send | ldns_pkt, ldns_resolver -ldns_tcp_send_query, ldns_tcp_read_wire, ldns_tcp_connect | ldns_send, ldns_pkt, ldns_resolver -### /net.h - -### buffer.h -# general -ldns_buffer | ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_export, ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip, ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current, ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok, ldns_buffer_write_at, ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32 -ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_export | ldns_buffer -# position -ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip | ldns_buffer -# values and pointers -ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current | ldns_buffer -# info -ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok | ldns_buffer -# read and write -ldns_buffer_write_at, ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32 | ldns_buffer -### /buffer.h - -# parse.h -ldns_bget_token, ldns_bgetc, ldns_bskipcs | ldns_buffer -ldns_fget_token, ldns_fskipcs | ldns_buffer -ldns_str_remove_comment - - -# rr.h and other general rr funcs -ldns_rr, ldns_rr_class, ldns_rr_type, ldns_rr_compress, ldns_rr_list | ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print, ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf, ldns_rr_push_rdf, ldns_rr_pop_rdf, ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class, ldns_rr_list_rr_count, ldns_rr_list_set_rr_count, ldns_rr_list_new, ldns_rr_list_free, ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr, ldns_is_rrset, ldns_rr_set_push_rr, ldns_rr_set_pop_rr, ldns_get_rr_class_by_name, ldns_get_rr_type_by_name, ldns_rr_list_clone, ldns_rr_list_sort, ldns_rr_compare, ldns_rr_compare_ds, ldns_rr_uncompressed_size, ldns_rr2canonical, ldns_rr_label_count, ldns_is_rrset, ldns_rr_descriptor, ldns_rr_descript -ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print | ldns_rr, ldns_rr_list -ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf | ldns_rr, ldns_rr_list -ldns_rr_push_rdf, ldns_rr_pop_rdf | ldns_rr, ldns_rr_list -ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class | ldns_rr, ldns_rr_list -ldns_rr_list_rr_count, ldns_rr_list_set_rr_count | ldns_rr, ldns_rr_list -ldns_rr_list_new, ldns_rr_list_free | ldns_rr, ldns_rr_list -ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr | ldns_rr, ldns_rr_list -ldns_is_rrset | ldns_rr, ldns_rr_list -ldns_rr_set_push_rr, ldns_rr_set_pop_rr | ldns_rr, ldns_rr_list -ldns_get_rr_class_by_name, ldns_get_rr_type_by_name | ldns_rr, ldns_rr_list -ldns_rr_list_clone | ldns_rr, ldns_rr_list -ldns_rr_list_sort | ldns_rr, ldns_rr_list -ldns_rr_compare, ldns_rr_compare_ds | ldns_rr, ldns_rr_list -ldns_rr_uncompressed_size | ldns_rr, ldns_rr_list -ldns_rr2canonical | ldns_rr, ldns_rr_list -ldns_rr_label_count | ldns_rr, ldns_rr_list -ldns_is_rrset | ldns_rr - -# rr descriptors -ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type | ldns_rr, ldns_rdf - -# packet.h -ldns_pkt, ldns_pkt_section, ldns_pkt_type | ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type, ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type, ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig, ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data - -ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type | ldns_pkt -# gets -ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type | ldns_pkt -# sets -ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig | ldns_pkt -# EDNS0 -ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data | ldns_pkt - -# rr_functions.h -ldns_rr_ns_nsdname -# -ldns_rr_mx_preference, ldns_rr_mx_exchange -# -ldns_rr_rrsig_typecovered, ldns_rr_rrsig_set_typecovered, ldns_rr_rrsig_algorithm, ldns_rr_rrsig_set_algorithm, ldns_rr_rrsig_labels, ldns_rr_rrsig_set_labels, ldns_rr_rrsig_origttl, ldns_rr_rrsig_set_origttl, ldns_rr_rrsig_expiration, ldns_rr_rrsig_set_expiration, ldns_rr_rrsig_inception, ldns_rr_rrsig_set_inception, ldns_rr_rrsig_keytag, ldns_rr_rrsig_set_keytag, ldns_rr_rrsig_signame, ldns_rr_rrsig_set_signame, ldns_rr_rrsig_sig, ldns_rr_rrsig_set_sig -# -ldns_rr_dnskey_flags, ldns_rr_dnskey_set_flags, ldns_rr_dnskey_protocol, ldns_rr_dnskey_set_protocol, ldns_rr_dnskey_algorithm, ldns_rr_dnskey_set_algorithm, ldns_rr_dnskey_key, ldns_rr_dnskey_set_key | ldns_rr - -### zone.h -ldns_zone | ldns_zone_new, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l, ldns_zone_sort, ldns_zone_glue_rr_list, ldns_zone_push_rr, ldns_zone_push_rr_list, ldns_zone_set_rrs, ldns_zone_set_soa, ldns_zone_rrs, ldns_zone_soa, ldns_zone_rr_count, - - -ldns_zone_new, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l | ldns_zone -ldns_zone_sort, ldns_zone_glue_rr_list | ldns_zone -ldns_zone_push_rr, ldns_zone_push_rr_list | ldns_zone -ldns_zone_set_rrs, ldns_zone_set_soa | ldns_zone, ldns_zone_rrs, ldns_zone_soa -ldns_zone_rrs, ldns_zone_soa | ldns_zone ldns_zone_set_rrs -ldns_zone_rr_count | ldns_zone - -### update.h -ldns_update_pkt_new | ldns_update_pkt_tsig_add, ldns_update_pkt_tsig_add, ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount, ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount, - -ldns_update_pkt_tsig_add | ldns_update_pkt_new -ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount | ldns_update_pkt_new -ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount | ldns_update_pkt_new diff --git a/usr.sbin/unbound/ldns/doc/header.html b/usr.sbin/unbound/ldns/doc/header.html deleted file mode 100644 index 5b311bd9863..00000000000 --- a/usr.sbin/unbound/ldns/doc/header.html +++ /dev/null @@ -1,10 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html><head><meta http-equiv="Content-Type" -content="text/html;charset=iso-8859-1"> -<title>ldns documentation</title> -<link href="doxygen.css" rel="stylesheet" type="text/css"> -<link href="tabs.css" rel="stylesheet" type="text/css"> -</head><body> -<div class="logo"> -<img src="LogoInGradientBar2-y100.png"/> -</div> diff --git a/usr.sbin/unbound/ldns/doc/libdns.css b/usr.sbin/unbound/ldns/doc/libdns.css deleted file mode 100644 index 2d2f3858637..00000000000 --- a/usr.sbin/unbound/ldns/doc/libdns.css +++ /dev/null @@ -1,425 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { -text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84c7b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84c7b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} - -DIV.navtab { - background-color: #e8eef2; - border: 1px solid #84c7b0; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A { - text-decoration: none; - font-weight: bold; - color: #1ba159; -} - -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1ba159; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1b7159; -} -A.qindex:hover { - text-decoration: none; - background-color: #ddffdd; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code:link { text-decoration: none; font-weight: normal; color: #1ba159} -A.code:visited { text-decoration: none; font-weight: normal; color: #1b7159} -A.codeRef:link { font-weight: normal; color: #1ba159} -A.codeRef:visited { font-weight: normal; color: #1b7159} -A:hover { text-decoration: none; background-color: #c0c0c0 } - -DL.el { margin-left: -1cm } -.fragment { - font-family: monospace; - font-size: 100%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -TD.mdname1 { background-color: #F4FBF4; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4FBF4; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #e8eef2; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #e8eef2; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #009933; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #008000; - font-weight: normal; - background-color: #e8eef2; -} -TD.tiny { font-size: 75%; -} -a { - color: #1ba159; -} -a:visited { - color: #1b7159; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} -TH.dirtab { background: #e8eef2; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; -} - -/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ - -DIV.tabs -{ - float : left; - width : 100%; - background : url("tab_b.gif") repeat-x bottom; - margin-bottom : 4px; -} - -DIV.tabs UL -{ - margin : 0px; - padding-left : 10px; - list-style : none; -} - -DIV.tabs LI, DIV.tabs FORM -{ - display : inline; - margin : 0px; - padding : 0px; -} - -DIV.tabs FORM -{ - float : right; -} - -DIV.tabs A -{ - float : left; - background : url("tab_r.gif") no-repeat right top; - border-bottom : 1px solid #84C7B0; - font-size : x-small; - font-weight : bold; - text-decoration : none; -} - -DIV.tabs A:hover -{ - background-position: 100% -150px; -} - -DIV.tabs A:link, DIV.tabs A:visited, -DIV.tabs A:active, DIV.tabs A:hover -{ - color: #1b7159; -} - -DIV.tabs SPAN -{ - float : left; - display : block; - background : url("tab_l.gif") no-repeat left top; - padding : 5px 9px; - white-space : nowrap; -} - -DIV.tabs INPUT -{ - float : right; - display : inline; - font-size : 1em; -} - -DIV.tabs TD -{ - font-size : x-small; - font-weight : bold; - text-decoration : none; -} - - - -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -DIV.tabs SPAN {float : none;} -/* End IE5-Mac hack */ - -DIV.tabs A:hover SPAN -{ - background-position: 0% -150px; -} - -DIV.tabs LI#current A -{ - background-position: 100% -150px; - border-width : 0px; -} - -DIV.tabs LI#current SPAN -{ - background-position: 0% -150px; - padding-bottom : 6px; -} - -DIV.nav -{ - background : none; - border : none; - border-bottom : 1px solid #84C7B0; -} - -.logo -{ - text-align: right; -} diff --git a/usr.sbin/unbound/ldns/doc/tutorial1_mx.dox b/usr.sbin/unbound/ldns/doc/tutorial1_mx.dox deleted file mode 100644 index f442e7f501c..00000000000 --- a/usr.sbin/unbound/ldns/doc/tutorial1_mx.dox +++ /dev/null @@ -1,98 +0,0 @@ -/** - \page tutorial1_mx Tutorial 1: Querying for MX records - \dontinclude ldns-mx.c - - The full source code can be found in \link examples/ldns-mx.c \endlink - - ldns-mx is a simple tool that queries your default caching forwarder for - the MX (Mail exchange) record of the given domain. - - <pre> - % ldns-mx nlnetlabs.nl - nlnetlabs.nl. 86400 IN MX 100 omval.tednet.nl. - nlnetlabs.nl. 86400 IN MX 50 open.nlnetlabs.nl. - </pre> - - First of all, we need to include the correct header files, so - that all functions are available to us: - - \skip include - \until dns.h - - In this case we have used a configure script to generate a config.h file - that does all our inclusions for us, so that it can be compiled on - multiple platforms. If your platform supports the include files \c - stdint.h and \c stdlib.h, you can include these instead of using a - configure script. - - The first included files are prerequisites that ldns needs to function. - The last one, of course, includes the functions of ldns itself. - - In our main function, we declare some variables that we are going to use: - - \skipline ldns_resolver - \until ldns_status - - - The \c ldns_resolver structure keeps a list of nameservers, and can perform queries for us - - An \c ldns_rdf is a basic data type of dns, the RDATA. See \ref design for a description about the building blocks of DNS. - In this case, \c domain will be used to store the name the user specifies when calling the program - - An \c ldns_pkt is a DNS packet, for instance a complete query, or an answer - - The \c ldns_rr_list structure contains a list of DNS Resource Records (RRs). In this case, we will store the MX records we find in the list. - - \c ldns_status is the basic type for status messages in ldns. Most functions will return a value of this type. - - First, we parse the command line argument (checks omitted on this page, see full source code), and store it in our \c domain variable: - \skipline ldns_dname_new_frm_str - - This function takes a string containing a domain name (like - "nlnetlabs.nl") and returns an \c ldns_rdf representing that name. If - somehow the given string can not be parsed it returns NULL. - - Then, we create the resolver structure: - \skipline ldns_resolver_new - - Most of the functions work like this, the first argument is a pointer to - the structure where ldns should store its results (which is also a - pointer). The function returns a status code indicating success - (\ref LDNS_STATUS_OK) or an error number. Remember that these types of - functions allocate memory that you should free later (using the - ldns_free_<type> functions). - - The second argument is the filename that contains information about the - resolver structure that is to be created. If this argument is NULL, - /etc/resolv.conf is used. The syntax of the file is like that of - /etc/resolv.conf. - - - - We tell the resolver to query for our domain, type MX, of class IN: - \skipline ldns_resolver_query - \until ) - - The last argument contains flags to influence the type of query the - resolver structure sends. In this case, we want the nameserver to use - recursion, so that we'll get the final answer. Therefore, we specify the - \ref LDNS_RD (Recursion Desired) flag. - - This should return a packet if everything goes well. - - We get all RRs of type MX from the answer packet and store them in our list: - \skipline ldns_pkt_rr_list_by_type - \until ) - - If this list is not empty, we sort and print it: - \skipline ldns_rr_list_sort - \skipline ldns_rr_list_print - - And finally, just to be proper, we free our allocated data: - \skipline free( - \until resolver_deep_free - - For structures that can contain other ldns structures, there are two types of free() function available - - \c ldns_free_<type> frees only the allocated data for the structure itself. - - \c ldns_deep_free_<type> frees the structure, and ALL structures that - are nested in it. For example, of you \c deep_free an ldns_rr_list, - all \c ldns_rr structures that were present in the list are also - freed. - - -*/ diff --git a/usr.sbin/unbound/ldns/doc/tutorial2_zone.dox b/usr.sbin/unbound/ldns/doc/tutorial2_zone.dox deleted file mode 100644 index 680ccb46a31..00000000000 --- a/usr.sbin/unbound/ldns/doc/tutorial2_zone.dox +++ /dev/null @@ -1,111 +0,0 @@ -/** - \page tutorial2_zone Tutorial 2: Reading a zone file - \dontinclude ldns-read-zone.c - - The full source code can be found in \link examples/ldns-read-zone.c \endlink - - ldns-read-zone reads a zone file, and prints it to stdout, with 1 resource record per line. - - <pre> -% cat example.zone -$ORIGIN example. -$TTL 600 - -example. IN SOA example. op.example. ( - 2004022501 ; serial - 28800 ; refresh (8 hours) - 7200 ; retry (2 hours) - 604800 ; expire (1 week) - 18000 ; minimum (5 hours) - ) - -@ IN MX 10 mail.example. -@ IN NS ns1 -@ IN NS ns2 -@ IN A 123.123.123.123 - -% ldns-read-zone example.zone -example. 600 IN SOA example. op.example. 2004022501 28800 7200 604800 18000 -example. 600 IN MX 10 mail.example. -example. 600 IN NS ns1.example. -example. 600 IN NS ns2.example. -example. 600 IN A 123.123.123.123 - </pre> - - - -Again, let's start with including some necessary header files: - -\skipline include -\until errno - -In this example, we are going to open a file, if that fails, we'll need errno.h to display an error message. - -Okay, let's declare the variables we are going to need today: - -\skipline filename -\until ldns_status - -The only two ldns-specific types here are \c ldns_zone and \c ldns_status. - - \c ldns_zone is the structure that can contain a complete zone - - \c ldns_status again is used to check return values of ldns functions - - -If we get no filename, we'll read standard input, otherwise, we'll try to -open the given filename: -\skipline if (argc == 0) -\until exit(EXIT_FAILURE) -\until } -\until } - - -With the \c FILE pointer in our hands, we visit ldns to pour it into a zone -structure: -\skipline ldns_zone_new_frm_fp_l - -There is also a \c ldns_zone_new_frm_fp, but this one also remembers the -line number it was on, so we can use that if we encounter a parse error. - -Just like in \ref tutorial1_mx, the first argument is a pointer -to the place ldns should store its creation in, and again, the return value -is the status code. - -The second argument is the file pointer where our zone data should reside. - -The third argument, if not NULL, is a \c dname that contains the zones -origin. It will place this dname after every name in the file that is not a -fully qualified domain name. - -The fourth argument, if not 0, is the default TTL to use. - -Both these values can be specified in the zone file by setting \c $ORIGIN and \c $TTL. - -The fifth argument specifies the default class, which defaults to IN (\ref LDNS_RR_CLASS_IN). - -And finally, every time \c ldns_zone_new_frm_fp_l reads a line from the -input file pointer, it will increment the value pointed to by the last -argument with 1. - - -Okay, with that, we should have a nice zone structure. Of course we need to -check whether it has succeeded. - -\skipline LDNS_STATUS_OK -\until deep_free - -If everything went well, we sort the zone if necessary, print it, and free it. - -Since \c ldns_zone contains other ldns structures, we use \c ldns_deep_free -so that every \c ldns_rr_list, \c ldns_rr et cetera are freed too. - -\until line_nr); -\until } - -If something went wrong, we use \c ldns_get_errorstr_by_id() to get a nice -error string instead of just a status integer. - -And of course, we should play nice and close the file: -\skipline fclose -\until exit - -*/ diff --git a/usr.sbin/unbound/ldns/doc/tutorial3_signzone.dox b/usr.sbin/unbound/ldns/doc/tutorial3_signzone.dox deleted file mode 100644 index 1943e557ae4..00000000000 --- a/usr.sbin/unbound/ldns/doc/tutorial3_signzone.dox +++ /dev/null @@ -1,206 +0,0 @@ -/** - \page tutorial3_signzone Tutorial 3: Signing a zone file - \dontinclude ldns-signzone.c - - The full source code can be found in \link examples/ldns-signzone.c \endlink - - Of course, we start by the usual includes. Since we need a bit more here, - we'll add those right away. - - \skipline include - \until define - - Let's skip the boring usage() and sanity check functions, and dive right - into main(). - - \skipline main(int argc - \skipline { - - We'll be reading another zone file, so let's prepare some variables for that. - - \skipline zone - \until argi - - We will create a separate zone structure for the signed zone, so let's have a clear name for the original one. - - \skipline zone - \until zone - - To sign a zone, we need keys, so we need some variables to read and store it; - - \skipline key - \until status - - The \ref ldns_key structure holds (private) keys. These can be of any - supported algorithm type; you can put an RSA key in it, an DSA key, or an - HMAC key. Public keys can simply be put in an \ref ldns_rr structure with - type \ref LDNS_RR_TYPE_DNSKEY. - - The \ref ldns_key_list type is much like the \ref ldns_rr_list, only, you - guessed it, for \c ldns_key entries. - - - The signed zone will be stored in a new file. - - \skipline file - \until file - - And we have some command line options for the output zone. - - \skipline tm - \until class - - \c origin is a domain name, so it can be stored in an \ref ldns_rdf - variable with type \ref LDNS_RDF_TYPE_DNAME. - - The next part is option parsing, which is pretty straightforward using \c - getopt(), so we'll skip this too. U can always look to the source of the - file to check it out. - - Okay that's it for the variables, let's get to work! - - First we'll try to read in the zone that is to be signed. - - \skipline fopen(zone - \until } else { - - If the file exists and can be read, we'll let ldns mold it into a zone - structure: - - \skipline zone_new - - This creates a new (\c new) zone from (\c frm) a filepointer (\c fp), - while remembering the current line (\c l) in the input file (for error - messages). - - A pointer to the zone structure to be filled is passed as the first - argument, like in most \c new_frm functions. - - Like a lot of ldns functions, this one returns a \c ldns_status - indicating success or the type of failure, so let us check that. - - \skipline STATUS - \until } else { - - If everything is ok so far, we check if the zone has a SOA record and contains actual data. - - \skipline orig_soa - \until } - \until } - \until } - - Now that we have the complete zone in our memory, we won't be needing the file anymore. - - \skipline fclose - \until } - - If there was no origin given, we'll use the one derived from the original zone file. - - \skipline origin - \until } - - No signing party can be complete without keys to sign with, let's fetch those. - - Multiple key files can be specified on the command line, by using the - base names of the .key/.private file pairs. - - \skipline key - \until fopen - - As you can see, we append ".private" to the name, which should result in - the complete file name of the private key. Later we'll also form the - ".key" file name, which will be directly included in the signed zone. - - If the file exists, we'll read it and create a \c ldns_key from its - contents, much like the way we read the zone earlier. - - \skipline line_nr - \until STATUS - - If this went ok, we need to set the inception and expiration times, which - are set in the keys, but will eventually end up in the RRSIGs generated - by those keys. - - \skipline expiration - \until } - \skipline inception - \until } - - And now that we have read the private keys, we read the public keys and - add them to the zone. - - Reading them from the files works roughly the same as reading private - keys, but public keys are normal Resource Records, and they can be stored - in general \c ldns_rr structures. - - \skipline FREE - \until } - \until } - - With \c push() we add them to our key list and our zone. This function - clones the data, so we can safely free it after that. - - \skipline push - \until free - - And if we're done, we free the allocated memory for the file name. - - \until FREE - - If the reading did not work, we print an error. Finally, we move on to - the next key in the argument list. - - \skipline } else { - \until } - \until } - \until } - - Just to be sure, we add a little check to see if we actually have any keys now. - - \skipline count - \until } - - So, we have our zone, we have our keys, let's do some signing! - - \skipline sign - - Yes. That's it. We now have a completely signed zone, \c ldns_zone_sign - checks the keys, and uses the zone signing keys to sign the data resource - records. NSEC and RRSIG resource records are generated and added to the - new zone. - - So now that we have a signed zone, all that is left is to store it somewhere. - - If no explicit output file name was given, we'll just append ".signed" to - the original zone file name. - - \skipline outputfile - \until } - - \c ldns_zone_sign returns NULL if the signing did not work, so we must check that. - - \skipline signed_zone - \until } else { - - Writing to a file is no different than normal printing, so we'll print to - the file and close it. - - \skipline print - \until } - - And of course, give an error if the signing failed. - - \skipline } else { - \until } - - Just to be nice, let's free the rest of the data we allocated, and exit - with the right return value. - - \skipline free - \until } - - - - - -*/
\ No newline at end of file |