LolDNS is my fork of djbdns. The goal here has been to go beyond the many current forks of just perpetuating the product, and to actually do away with the things that djbdns used to get slammed for.

Not so new

Due largely to community interest, LolDNS is now in maintenance mode. This means that, whilst I will still fix any serious bugs reported, I will not be implementing new features. Principally amongst those is that the only init scripts I have written are SysV style, not systemd.


LolDNS has now moved to Github. Installation is no longer a six hour epic involving every other product DJB has written. “make && make install”. You will need to add two users and run *-conf as per usual configuration setups.

{% highlight bash %} [root@li39-174 loltmpdownload]# git clone Checked out revision 13. [root@li39-174 loltmpdownload]# make [root@li39-174 loltmpdownload]# make rofl …__ … …. …| |… … ||/____… …|’-|—| … ..\ _…|—|---|… ../ L _,/-------__
.|LOL|----------------O----- ----,.. ..\ L /
,---”-----------, /… ../ /…_________ ,/… .//…__//_ ____/. [root@li39-174 loltmpdownload]# make install [root@li39-174 loltmpdownload]# useradd loldns [root@li39-174 loltmpdownload]# useradd lollog -G loldns [root@li39-174 loltmpdownload]# /usr/local/bin/tinydns-conf loldns lollog /var/dns [root@li39-174 root]# vim data [root@li39-174 root]# more data [root@li39-174 root]# make [root@li39-174 root]# service loldns start Starting DNS services: [ OK ] [root@li39-174 root]# chkconfig loldns on {% endhighlight %}

Source on GitHub

Grab your copy now!


Hard to imagine introducing a flaw. Only the logging daemon involves new code that stays in memory. Unlike Dan’s, it calls chroot() before dropping privileges.


No need to learn forty billion sv* commands, symlinks to /service and Dan’s convoluted series of scripts. Usual RedHat syntax: service loldns start service loldns stop That’s right. We run without daemontools as a standard.

Even less bloat

Who cares about Dan’s replacement for “dig”?

Many code changes:

MANY compiler warnings removed. Several silly looking (but obviously not broken.. since they work for everyone else) types have been changed from a char* to the struct glibc wants us to use.


If you want to cry about something, contact me on