Commit db0a678b authored by Filip Široký's avatar Filip Široký Committed by Daniel Salzman

doc: enhance doxygen documentation

parent c3938677
......@@ -12,6 +12,7 @@
.dirstamp
/tmp
/Knot.creator.user*
/Doxyfile
/Makefile
/Makefile.in
/src/Makefile
......
/*!
\defgroup server Server module
\defgroup threading Threading API
\defgroup config Server configuration
\defgroup query_processing DNS query processing
\defgroup logging Server logging API
\defgroup libknot DNS-related functions
\defgroup ctl Control module
\defgroup zone_scanner Zone scanner (core)
\defgroup zone_scanner_test Zone scanner testing environment
\defgroup knot_utils DNS utilities
\mainpage Knot API documentation.
See the <a href="https://www.knot-dns.cz/documentation/">Documentation</a>.
<h2>Server modules</h2>
- \ref server
- \ref threading
- \ref config
- \ref query_processing
- \ref logging
- \ref ctl
<h2>DNS library</h2>
- \ref libknot
<h2>Zone processing</h2>
- \ref zone_scanner
- \ref zone_scanner_test
<h2>Utilities</h2>
- \ref knot_utils
*/
\mainpage Knot DNS API Documentation
\par Knot DNS homepage
https://www.knot-dns.cz
\par Git repository
https://gitlab.labs.nic.cz/knot/knot-dns
\par Modules
- \subpage libknot-page
- \subpage libdnssec-page
- \subpage libzscanner-page
- \subpage knotd-page
\copyright Licensed under the terms of
[GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.txt)
version 3 or later.
\page libknot-page libknot - General DNS library
\section libknot-content Sections
- \ref ctl — Server control interface
- \ref db — Database abstraction
- \ref dname — Domain name manipulation
- \ref pkt — DNS packet manipulation
- \ref rr — DNS resource record mmanipulation
- \ref rrtype — DNS resource record types
- \ref knot-tsig — TSIG operations
- \ref wire — Packet wire data manipulation
- \ref yparser — Simple YAML parser
\defgroup ctl ctl
\defgroup db db
\defgroup dname dname
\defgroup pkt pkt
\defgroup rr rr
\defgroup rrtype rrtype
\defgroup knot-tsig tsig
\defgroup wire wire
\defgroup yparser yparser
\page libdnssec-page libdnssec - DNSSEC library
\section libdnssec-content Sections
- \ref binary — Universal binary data container
- \ref crypto — Cryptographic backend
- \ref error — Error codes and error reporting
- \ref key — DNSSEC key manipulation
- \ref keyid — DNSSEC key ID manipulation
- \ref keystore — DNSSEC private key store
- \ref keytag — DNSSEC key tag computation
- \ref list — Generic list container
- \ref nsec — NSEC and NSEC3 operations
- \ref random — Pseudo-random number generation
- \ref sign — DNSSEC signing and verification
- \ref tsig — TSIG signing
\defgroup binary binary
\defgroup crypto crypto
\defgroup error error
\defgroup key key
\defgroup keyid keyid
\defgroup keystore keystore
\defgroup keytag keytag
\defgroup list list
\defgroup nsec nsec
\defgroup random random
\defgroup sign sign
\defgroup tsig tsig
\page libzscanner-page libzscanner - DNS zone file parser
\section libzscanner-content Sections
- \ref zscanner — DNS zone file parser
\defgroup zscanner zscanner
\page knotd-page knotd - Knot DNS module interface
\section knotd-content Sections
- \ref module — Knot DNS module interface
\defgroup module module
*/
This diff is collapsed.
......@@ -2,7 +2,7 @@
<!-- Generated by doxygen 1.8.6 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="mainpage" visible="no" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
......@@ -17,7 +17,7 @@
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
<tab type="globals" visible="no" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
......
......@@ -594,6 +594,7 @@ $result_msg_base
AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary])
AC_CONFIG_FILES([Makefile
Doxyfile
doc/Makefile
libtap/Makefile
tests/Makefile
......
/_build
/api
/modules
/modules.rst
......
Jan Včelák <jan.vcelak@nic.cz>
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Universal binary data container.
* \addtogroup binary
*
* \defgroup binary Binary
*
* Universal binary data container.
* \brief Universal binary data container.
*
* The module provides universal binary data container extensively used by
* a lot of functions provided by the library.
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Cryptographic backend initialization.
* \addtogroup crypto
*
* \defgroup crypto Crypto
*
* Cryptographic backend initialization.
* \brief Cryptographic backend initialization.
*
* For most cryptographic operations, the library requires global
* initialization. Also, if the application creates a subprocess, the
......
......@@ -17,87 +17,6 @@
* \file
*
* Convenient header to include all library modules.
*
* \mainpage Introduction
*
* The \c libdnssec is a DNSSEC library for authoritative name servers and
* similar solutions for DNSSEC management on the server side. Primarily,
* the library is designed for use in the [Knot DNS](https://www.knot-dns.cz)
* server.
*
* This is the API documentation for the \c libdnssec library.
* At the moment, the API is not stable and is subject to frequent changes.
*
* The source code of the library is available in the Knot DNS repository in
* the \c dnssec directory. Compilation of the library is integrated into the
* Knot DNS build.
*
* \par Git repository
* [git://git.nic.cz/knot-dns.git](git://git.nic.cz/knot-dns.git)
*
* \par Git repository browser
* https://gitlab.labs.nic.cz/knot/knot-dns/tree/master/src/dnssec
*
* \par Issue tracker
* https://gitlab.labs.nic.cz/knot/knot-dns/issues
*
* \par Mailing list
* knot-dns-users@lists.nic.cz
*
* \author Jan Vcelak
*
* \copyright 2013-2014 CZ.NIC, z.s.p.o.
*
* \copyright Licensed under the terms of
* [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.txt)
* version 3 or later.
*
* \page library Library overview
*
* \section dependencies Library dependencies
*
* In order to compile Knot DNS with \c libdnssec, following libraries
* are required:
*
* - [GnuTLS](http://www.gnutls.org) >= 3.0
* for cryptographic operations.
* - [Nettle](http://www.lysator.liu.se/~nisse/nettle/) >= 2.4
* for Base64 encoding.
* - [LibYAML](http://pyyaml.org/wiki/LibYAML) >= 0.1
* for YAML parsing and writing.
*
* On Debian based distributions, install following packages:
*
* libgnutls28-dev nettle-dev libyaml-dev
*
* On Fedora based distributions, install following packages:
*
* gnutls-devel nettle-devel libyaml-devel
*
* The library also utilizes following libraries, which are bundled with
* \c libdnssec:
*
* - [LibUCW](http://www.ucw.cz/libucw/) for various internal structures.
* - [C TAP Harness](http://www.eyrie.org/~eagle/software/c-tap-harness/)
* for unit tests writing and execution.
*
* \section organization Library organization
*
* The library is structured into modules. Interface of each module is covered
* by a separate header file.
*
* It is recommended to include only required modules, for instance:
*
* ~~~~ {.c}
* #include <dnssec/binary.h>
* #include <dnssec/key.h>
* ~~~~
*
* In order to include all headers, following header can be used:
*
* ~~~~ {.c}
* #include <dnssec/dnssec.h>
* ~~~~
*/
#pragma once
......
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Error codes and error reporting.
* \addtogroup error
*
* \defgroup error Error
*
* Error codes and error reporting.
* \brief Error codes and error reporting.
*
* The module defines all error codes used in the library, and functions
* to convert the error codes to sensible error strings.
......
......@@ -16,11 +16,9 @@
/*!
* \file
*
* DNSSEC public and private key manipulation.
* \addtogroup key
*
* \defgroup key Key
*
* DNSSEC public and private key manipulation.
* \brief DNSSEC public and private key manipulation.
*
* The dnssec_key_t is an abstraction for a DNSSEC key pair. If the key
* key is initialized with a public key data only, it can be used only for
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* DNSSEC key ID manipulation.
*
* \defgroup keyid Key ID
*
* DNSSEC key ID manipulation.
* \addtogroup keyid
*
* \brief DNSSEC key ID manipulation.
*
* The module contains auxiliary functions for manipulation with key IDs.
*
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Private key store access.
* \addtogroup keystore
*
* \defgroup keystore Key store
*
* Private key store access.
* \brief Private key store access.
*
* The module provides abstraction for private key store. Basically, PKCS #8
* and PKCS #11 interfaces are supported.
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Low-level key tag computation API.
* \addtogroup keytag
*
* \defgroup keytag Key tag
*
* Low-level key tag computation API.
* \brief Low-level key tag computation API.
*
* The module provides simple interface for DNSKEY key id computation.
*
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,9 +16,9 @@
/*!
* \file
*
* DNSSEC generic lists.
* \addtogroup list
*
* \defgroup list Lists
* \brief DNSSEC generic lists.
*
* @{
*/
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* NSEC bitmap and NSEC3 hash computation API.
* \addtogroup nsec
*
* \defgroup nsec NSEC
*
* NSEC bitmap and NSEC3 hash computation API.
* \brief NSEC bitmap and NSEC3 hash computation API.
*
* The module provides interface for computation of NSEC3 hashes and for
* construction of bit maps used in NSEC and NSEC3 records.
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Pseudo-random number generating API.
* \addtogroup random
*
* \defgroup random Random
*
* Pseudo-random number generating API.
* \brief Pseudo-random number generating API.
*
* The module provides generating of pseudo-random numbers and buffers.
*
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* DNSSEC signing API.
* \addtogroup sign
*
* \defgroup sign Sign
*
* DNSSEC signing API.
* \brief DNSSEC signing API
*
* The module provides the low level DNSSEC signing and verification.
*
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -16,11 +16,9 @@
/*!
* \file
*
* Low-level TSIG signing API.
* \addtogroup tsig
*
* \defgroup tsig TSIG
*
* Low-level TSIG signing API.
* \brief Low-level TSIG signing API.
*
* Example:
*
......
......@@ -13,6 +13,14 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \brief Knot DNS module interface.
*
* \addtogroup module
* @{
*/
#pragma once
......@@ -482,3 +490,5 @@ int knotd_mod_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_hook_f hook)
* \return Error code, KNOT_EOK if success.
*/
int knotd_mod_in_hook(knotd_mod_t *mod, knotd_stage_t stage, knotd_mod_in_hook_f hook);
/*! @} */
......@@ -18,7 +18,7 @@
*
* \brief A server control interface.
*
* \addtogroup libknot
* \addtogroup ctl
* @{
*/
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -13,6 +13,14 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \brief Structures for binary data handling.
*
* \addtogroup db
* @{
*/
#pragma once
......@@ -79,3 +87,5 @@ typedef struct knot_db_api {
int (*iter_val)(knot_db_iter_t *iter, knot_db_val_t *val);
void (*iter_finish)(knot_db_iter_t *iter);
} knot_db_api_t;
/*! @} */
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -13,6 +13,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \addtogroup db
* @{
*/
#pragma once
......@@ -61,3 +67,5 @@ int knot_db_lmdb_txn_begin(knot_db_t *db, knot_db_txn_t *txn, knot_db_txn_t *par
int knot_db_lmdb_iter_del(knot_db_iter_t *iter);
size_t knot_db_lmdb_get_mapsize(knot_db_t *db);
size_t knot_db_lmdb_get_usage(knot_db_t *db);
/*! @} */
/* Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -13,6 +13,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \addtogroup db
* @{
*/
#pragma once
......@@ -29,3 +35,5 @@ struct knot_db_trie_opts {
}
const knot_db_api_t *knot_db_trie_api(void);
/*! @} */
......@@ -16,7 +16,7 @@
/*!
* \file
*
* \addtogroup libknot
* \addtogroup rr
* @{
*/
......
......@@ -18,7 +18,7 @@
*
* \brief Domain name structure and API for manipulating it.
*
* \addtogroup libknot
* \addtogroup dname
* @{
*/
......
/* Copyright (C) 2013 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
*
* \brief Name compression API.
*
* \addtogroup libknot
* \addtogroup pkt
* @{
*/
......
......@@ -18,7 +18,7 @@
*
* \brief Structure for holding DNS packet data and metadata.
*
* \addtogroup libknot
* \addtogroup pkt
* @{
*/
......
/* Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
*
* \brief RRSet from/to wire conversion functions.
*
* \addtogroup libknot
* \addtogroup wire
* @{
*/
......
/* Copyright (C) 2011 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
*
* \brief Functions for manipulating and parsing raw data in DNS packets.
*
* \addtogroup libknot
* \addtogroup wire
* @{
*/
......
......@@ -18,7 +18,7 @@
*
* \brief API for manipulating rdata.
*
* \addtogroup libknot
* \addtogroup rr
* @{
*/
......@@ -43,10 +43,10 @@ typedef struct {
/*!
* \brief Inits rdata structure.
*
* \param buf Rdata structure to be initialized. At least knot_rdata_size bytes
* must fit into it!
* \param len Rdata length.
* \param data Rdata itself.
* \param rdata Rdata structure to be initialized. At least knot_rdata_size bytes
* must fit into it!
* \param len Rdata length.
* \param data Rdata itself.
*/
inline static void knot_rdata_init(knot_rdata_t *rdata, uint16_t len, const uint8_t *data)
{
......
......@@ -18,7 +18,7 @@
*
* \brief API for manipulating RR arrays.
*
* \addtogroup libknot
* \addtogroup rr
* @{
*/
......
/* Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
*
* \brief RRset text dump facility.
*
* \addtogroup libknot
* \addtogroup rr
* @{
*/
......
......@@ -18,7 +18,7 @@
*
* \brief RRSet structure and API for manipulating it.
*
* \addtogroup libknot
* \addtogroup rr
* @{
*/
......
/* Copyright (C) 2014 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
/* Copyright (C) 2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
......@@ -13,6 +13,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file
*
* \addtogroup rrtype
* @{
*/
#pragma once
......@@ -23,3 +29,5 @@
int knot_a_addr(const knot_rdataset_t *rrs, size_t pos, struct sockaddr_in *dst);
int knot_aaaa_addr(const knot_rdataset_t *rrs, size_t pos, struct sockaddr_in6 *dst);
/*! @} */
......@@ -13,6 +13,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/