Skip to content
LDNS is a DNS library that facilitates DNS tool programming
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
compat Fix out of bounds error on parse of b64 with invalid characters. Mar 2, 2015
contrib * bugfix #1399: ldns_pkt2wire() Python binding is broken. Aug 11, 2017
doc fix tutorial 1. Jul 27, 2017
drill Fix #4221 drill -x crashes with malformed IPv4 Jan 17, 2019
examples Merge pull request #5 from kylesferrazza/typo Mar 16, 2019
lua Bumb version (including .so version) Nov 21, 2016
m4 bugfix #678: Use poll to support > 1024 fds Oct 18, 2016
masterdont - Make lint happy Mar 18, 2013
packaging Purge unused variables Mar 12, 2019
pcat Bumb version (including .so version) Nov 21, 2016
test Regression tests are [3-5][0-9] Jun 4, 2018
.gitlab-ci.yml Not including the passed url Feb 13, 2017
.gitmodules Update submodule to use adapted DNS::LDNS version Dec 19, 2016
Changelog bugfix: Manage verification paths for OpenSSL >= 1.1.0 Mar 15, 2019
LICENSE update the LICENSE for 2006 Dec 15, 2005 executables require replacement compat obj files, because the library May 11, 2018
README README: punctuation, grammar, typos Jan 29, 2014
README.git Mention submodule init in README.git Oct 25, 2016
README.snapshots some texts fixed Apr 10, 2007
acx_nlnetlabs.m4 update acx_nlnetlabs with ws2_32 link. May 9, 2018
ax_pkg_swig.m4 Make pyldns work with the AX_PYTHON_DEVEL macro. Sep 12, 2011
buffer.c yet more const goodness Oct 21, 2015 bugfix #4106: find the SDK on MacOS X <= 10.6 Mar 12, 2019
dane.c A --disable-dane-verify option for configure Nov 8, 2016
dname.c Handle "array subscript has type 'char'" warnings Nov 30, 2016
dnssec.c Add openssl ED25519 support. May 30, 2017
dnssec_sign.c Some more fixes in different circumstances Apr 2, 2019
dnssec_verify.c Some more fixes in different circumstances Apr 2, 2019
dnssec_zone.c finished adding const goodness (for now) Oct 21, 2015
duration.c Better implementation Oct 11, 2017
error.c Spelling errors reported on user list. Feb 23, 2017
higher.c higher.c: don't try to parse comments in hosts Apr 26, 2016
host2str.c ED448 support. Apr 5, 2018
host2wire.c Compression pointers compare dnames Nov 29, 2016
keys.c Make OpenSSL ENGINE support optional Jan 6, 2019
libdns.vim Update of libdns.vim from Miek and some align on the 80 columns textu… Sep 20, 2011
linktest.c oops, removed test code Oct 1, 2009 Remove historical's May 1, 2017 Script to create with static exe and library files. May 11, 2018
net.c ldns/net.c: Fix uninitialized variable usage. Feb 28, 2018
packet.c fallthrough fixes Aug 22, 2017
parse.c Check parse limit before t increment Apr 26, 2017
radix.c finished adding const goodness (for now) Oct 21, 2015
rbtree.c finished adding const goodness (for now) Oct 21, 2015
rdata.c yet more const goodness Oct 21, 2015
resolver.c Don't write to return by reference on error Feb 25, 2019
rr.c Luckily we have unit tests! Jan 17, 2019
rr_functions.c * Prepare for ED25519, ED448 support: todo convert* routines in Mar 22, 2016
sha1.c better fix Dec 2, 2013
sha2.c - Uninitialized variable in securetrace.c Mar 12, 2013
str2host.c typo Dec 31, 2018
tsig.c Fix time sensitive TSIG compare vulnerability. Jul 30, 2018
update.c Remove consts when function takes ownership of parameter May 12, 2016
util.c fallthrough fixes Aug 22, 2017
wire2host.c * ldns_wire2pkt: fix null pointer dereference if pkt allocation fails Apr 4, 2017
zone.c finished adding const goodness (for now) Oct 21, 2015


		Mac OS X
        Your Support

Project page:
On that page you can also subscribe to the ldns mailing list.

* Development 
ldns is mainly developed on Linux and FreeBSD. It is regularly tested to
compile on other systems like Solaris and Mac OS X.

- OpenSSL (Optional, but needed for features like DNSSEC)
  - OpenSSL >= 0.9.7f for DANE support
  - OpenSSL >= 1.0.0  for ECDSA and GOST support
- libpcap (Optional, but needed for examples/ldns-dpa)
- (GNU) libtool (in OSX, that's glibtool, not libtool)
- GNU make

1. Unpack the tarball
2. cd ldns-<VERSION>
3. ./configure --with-examples --with-drill
   (optionally compile python bindings too with: --with-pyldns)
4. make
5. make install

* Building from repository

If you are building from the repository you will need to have (gnu)
autotools like libtool and autoreconf installed. A list of all the commands
needed to build everything can be found in README.git. Note that the actual
commands may be a little bit different on your machine. Most notably, you'll
need to run libtoolize (or glibtoolize). If you skip this step, you'll get
an error about missing config.sub.

* Developers
ldns is developed by the ldns team at NLnet Labs. This team currently
consists of:
  o Willem Toorop
  o Wouter Wijngaards
  o Matthijs Mekking

Former main developers:
  o Jelte Jansen
  o Miek Gieben

* Credits
We have received patches from the following people, thanks!
  o Bedrich Kosata
  o Erik Rozendaal
  o Håkan Olsson
  o Jakob Schlyter
  o Paul Wouters
  o Simon Vallet
  o Ondřej Surý
  o Karel Slany
  o Havard Eidnes
  o Leo Baltus
  o Dag-Erling Smørgrav



For MACOSX 10.4 and later, it seems that you have to set the
MACOSX_DEPLOYMENT_TARGET environment variable to 10.4 before running
make. Apparently it defaults to 10.1.

This appears to be a known problem in 10.2 to 10.4, see:
for more information.


In Solaris multi-architecture systems (which have both 32-bit and
64-bit support), it can be a bit taxing to convince the system to
compile in 64-bit mode. Jakob Schlyter has kindly contributed a build
script that sets the right build and link options. You can find it in


A complete list of currently known open issues can be found here:

* pyldns
Compiling pyldns produces many ``unused parameter'' warnings.  Those are
harmless and may safely be ignored.
Also, when building with SWIG older than 2.0.4, compiling
pyldns produces many ``missing initializer'' warnings. Those are harmless

Your Support
NLnet Labs offers all of its software products as open source, most
published under a BSD license. You can download them, not only from the
NLnet Labs website but also through the various OS distributions for
which NSD, ldns, and Unbound are packaged. We therefore have little idea
who uses our software in production environments and have no direct ties
with 'our customers'.

Therefore, we ask you to contact us at and tell us
whether you use one of our products in your production environment,
what that environment looks like, and maybe even share some praise.
We would like to refer to the fact that your organization is using our
products. We will only do that if you explicitly allow us. In all other
cases we will keep the information you share with us to ourselves.

In addition to the moral support you can also support us
financially. NLnet Labs is a recognized not-for-profit charity foundation
that is chartered to develop open-source software and open-standards
for the Internet. If you use our software to satisfaction please express
that by giving us a donation. For small donations PayPal can be used. For
larger and regular donations please contact us at Also

You can’t perform that action at this time.