danp.net
djbdns

My patches

other user-supplied patches are available here


zcat.pl

I've written zcat.pl, a tinydns zone file concatenator based loosely on Russ Nelson's axfr. Check it out!

The patch table

Patch name Patch description Diffs for version
dnscache nxdspecial When applied, if the $NXDSPECIAL environment variable is set, when dnscache encounters an A (or ANY) query that results in NXDOMAIN, instead of giving the NXDOMAIN reply to the client, it will generate an A record pointing the nonexistent host to the IP in $NXDSPECIAL. The TTL of the generated A record is the SOA TTL (or what's left of it if the NXDOMAIN has been cached) of the nonexistent host's domain. 1.05
dnscache forward only When applied, all of dnscache's queries will be forwarded to the servers in root/servers/@ with the Recursion Desired (RD) bit set. This makes dnscache a caching forwarder. Note: This patch's functionality was integrated into djbdns-1.03 and is here only for reference purposes. 1.02
dnscache multiple ip When applied, dnscache will accept a /-delimited list of IP address in $IP and bind to each in turn. This allows one to have dnscache listen on, say, external IP 1.2.3.4 which only client group A can reach, and, say, internal IP 4.3.2.1 which only client group B can reach. Assuming 1.2.3.4 and 4.3.2.1 are on the same machine, instead of running two independent dnscache instances on 1.2.3.4 and 4.3.2.1, one instance can bind to both IP's and serve queries from the shared cache. Simply put 1.2.3.4/4.3.2.1 in env/IP. Note: This patch's functionality can be achieved without patching in versions of dnscache that support $FORWARDONLY (1.03 and later). Example here. 1.02 1.03 1.04 1.05
server.c NXDOMAIN logging When applied, server.c applications (tinydns, rbldns, etc.) will log an "N" line (where the "N" replaces "+" for example) when they return NXDOMAIN. This is especially useful with tinydns since it gives a fine grain indication of what tinydns really knows about. I first came up with this patch when I was performing a big BIND changeover--I needed to make sure my hand-converted data file didn't have errors. 1.02 1.03 1.04 1.05
tinydns-data SOA contact, source #define version When applied, tinydns-data will use the contact address (with the first "." replaced with "@") specified in the CONTACT_ADDR #define in tinydns-data.c in automatically generated SOA records created by "." lines. Note: This patch is rather silly. It was my first patch to djbdns and can easily be replaced by a preprocessor script that changes "." lines into "Z" and associated "&" lines (for nameservers) if necessary. 1.02
tinydns-data SOA contact, data file "D" line version When applied, tinydns-data will use the contact address (with the first "." replaced with "@") specified via a line in the data file beginning with "D". Ddanp.danp.net sets the address for following "." lines to danp@danp.net, while "D" tells tinydns-data to begin generating hostmaster@dom addresses again. See the above note attached to the other version of this patch. You probably don't want to use it. I can't remember why I chose "D". Seems kind of weird now. 1.02