Nemo DJBDNS - Changes
Changes of the second generation of the DNS package.
This software is not compatible with…
- tinydns-data input data files in use by Nemo DJBDNS prior to version 4.0 or any version of DJBDNS.
- CDBs created by Nemo CBD prior to version 3.0 or any version of DJB CDBs.
- dnscache server directory files in use by Nemo DJBDNS prior to version 3.0 or any version of DJBDNS.
- dnscache6 server directory files in use by Nemo DJBDNS prior to version 3.0 or any version of DJBDNS.
v4.2 - UNRELEASED
This release contains optimisations and fixes.
Version Notes |
• New |
hashdns - email-listing DNS server (IPv4 connection). |
• New |
hashdns6 - email-address-listing DNS server (IPv6 connection). |
• New |
hashcheck - query email-address-listing DNS server (IPv4 connection). |
• New |
hashcheck6 - query email-address-listing DNS server (IPv6 connection). |
• Fixed |
Quoting of period character in tinydns-edit(1). |
• Fixed |
dbldns6-conf Makefile creation. |
• Fixed |
ioquery_havepacket() (IPv6) sub-routine return value - properly process empty RR set. |
• Fixed |
tinydns-data - MX resource record validation. |
• Fixed |
dns4_mxip4() - correctly handle out of memory errors in 2 cases. |
• Fixed |
dns4_mxip6() - correctly handle out of memory errors in 2 cases. |
• Fixed |
dns6_mxip4() - correctly handle out of memory errors in 2 cases. |
• Fixed |
dns6_mxip6() - correctly handle out of memory errors in 2 cases. |
• Fixed |
tinydns-data - NSEC RR generation. |
• Fixed |
axfr-get - correctly generate tinydns-data data. |
• Changed |
response_* data - now fully abstracted, accessor routines written and implemented. |
• Changed |
tinydns-data - allow more conventional RR names. |
• Changed |
dbldns-data - report error when duplicate keys exist. |
• Changed |
hashdns-data - report error when duplicate keys exist. |
• Changed |
rbldns-data - report error when duplicate keys exist. |
• Changed |
rbldns6-data - report error when duplicate keys exist. |
• Changed |
dbldns*(8) - minor changes. |
• Changed |
server*.c - split off common strings to separate module. |
• Changed |
dns_mxip() - now handle NUll MX resource records convention (RFC 7505). |
• Changed |
dns_mxip6() - now handle NUll MX resource records convention (RFC 7505). |
• Changed |
dnsmxip - now handle NUll MX resource records convention (RFC 7505). |
• Changed |
dnsmxip6 - now handle NUll MX resource records convention (RFC 7505). |
• Changed |
Incorporate changes from Nemo DJB Library. |
• Requires |
Nemo DJB Library v3.0 or later. |
• Requires |
Nemo BufIO Library v3.0 or later. |
• Requires |
Nemo CalDateTime Library v3.0 or later. |
• Requires |
Nemo CDB Library v3.3 or later. |
• Requires |
Nemo NaCL Library v2.0 or later. |
v4.1.1 - February 5, 2019
This release contains optimisations and fixes.
Version Notes |
• Changed |
Renamed WHITESPACE[] in whitespace.h to DNS_WHITESPACE[] - updated affected files. |
• Changed |
Renamed WHITESPACE_LEN in whitespace.h to DNS_WHITESPACE_LEN - updated affected files. |
• Changed |
dns_rcrw.c - implemented whitespace.h . |
• Changed |
tinydns-edit.c - implemented whitespace.h . |
• Changed |
tinydns-edit.c - improved syntax error reporting. |
• Fixed |
Error reporting in tinydns-v1data2data.
Reported by Thomas Krause. |
• Fixed |
Error reporting in tinydns-v3data2data. |
• Fixed |
Error reporting in dnscache-data and dnscache6-data. |
• Fixed |
Error reporting in tinydns-data and tinydns-edit. |
• Fixed |
Error reporting in wilddns-data. |
• Fixed |
response_opt_start() and response_opt_error() - implement lower four bits of an extended RCODE into the original RCODE field of resource record. |
v4.1 - January 28, 2019
This package is ready for DNS Flag Day, 2019.
dnscache and dnscache6 can have EDNS(0) processing enabled for upstream queries, see man page for more details.
Any program that uses a CDB, will update its use if the CDB changes. This release also contains optimisations and fixes.
Version Notes |
• New |
dnscache and dnscache6 - EDNS(0) processing configurable at run time. |
• New |
dns4_transmit_start_edns0() - send a DNS query to a DNS servers using IPv4 with EDNS(0). |
• New |
dns6_transmit_start_edns0() - send a DNS query to a DNS servers using IPv6 with EDNS(0). |
• New |
dns_rcode_str() - Convert a DNS response code into a string. |
• New |
data_cdb.c - refactoring of CDB setup code. |
• New |
All programs that use any CDB, automatically detect changes and will switch to the new version.
Program does not need to be restarted |
• New |
dns_punycode_encode() - Punycode encoding. |
• New |
dns_rcode_str() - Convert a DNS response code into a string. |
• New |
Extended the sent log entry to include the result code. |
• New |
dns_domain_diff(3) split from dns_domain_equal(3). |
• Changed |
Refactor EDNS(0) processing code. |
• Changed |
dns4_transmit_start() - disabled EDNS(0) . |
• Changed |
dns6_transmit_start() - disabled EDNS(0) . |
• Changed |
dns4_transmit.c - split into 3 files. |
• Changed |
dns6_transmit.c - split into 3 files. |
• Changed |
dbldns-data - strip trailing \r from input data file. |
• Changed |
dnscache-data and dnscache6-data - strip trailing \r from input data file. |
• Changed |
rbldns-data and rbldns6-data- strip trailing \r from input data file. |
• Changed |
tinydns-data - strip trailing \r from input data file. |
• Changed |
wilddns-data - strip trailing \r from input data file. |
• Changed |
printpacket_cat() - code optimisation. |
• Changed |
dnscache-dnlist2data and dnscache6-dnlist2data - code optimisation and generate warning banner in output. |
• Changed |
dnscache-iplist2data and dnscache6-iplist2data - code optimisation and generate warning banner in output. |
• Changed |
tinydns-bind2data and tinydns-dnlist2data - code optimisation and generate warning banner in output. |
• Changed |
log*() - code optimisation. |
• Changed |
dnscache and dnscache6 - improve robustness with Content Delivery Networks. |
• Changed |
Split tdlookup.c into tdlookup.c and tdlookup_loc_setup.c. |
• Fixed |
tinydns-data - expanded the values allowable for the flag field of the DNSKEY resource record. |
• Fixed |
tinydns-data(8) - documentation of CNAME entry. |
• Fixed |
dns_domain(3) - documentation of DNS_DOMAIN constant. |
• Fixed |
dnscache and dnscache6 - retry expired CNAME records. |
• Fixed |
dnscache and dnscache6 - process resource records even if a NXDOMAIN response is received from upstream DNS servers. |
• Fixed |
Build system - minor improvements. |
• Requires |
Nemo DJB Library v2.12 or later. |
• Requires |
Nemo DJBIO Library v2.2.4 or later. |
• Requires |
Nemo DJBCAL Library v2.1.9 or later. |
• Requires |
Nemo CDB Library v3.2.2 or later. |
v4.0.2 - March 23, 2018
This release contains optimisations and fixes.
Version Notes |
• Changed |
dnscache and dnscache6 - record empty resource records as NXDOMAIN in cache. |
• Changed |
dnscache and dnscache6 - record CNAME records in name server lookups as SERVFAIL in cache. |
• Changed |
dnscache and dnscache6 - record name server loops as SERVFAIL in cache. |
• Changed |
dnscache and dnscache6 - record glueless name server as SERVFAIL in cache. |
• Changed |
dnscache and dnscache6 - improve robustness for badly configured queried servers. |
• Changed |
dns4_mxip4() , dns4_mxip6() - ignore all non out-of-memory errors during IP address lookup;
such errors are no longer treated as fatal. |
• Changed |
dns6_mxip4() , dns6_mxip6() - ignore all non out-of-memory errors during IP address lookup;
such errors are no longer treated as fatal. |
• Changed |
log*() - code optimisation. |
• Requires |
Nemo DJB Library v2.11 or later. |
v4.0.1 - January 4, 2018
This release contains optimisations and fixes.
Version Notes |
• Changed |
All mdoc files - change text substitution literals (inspired by GNU Autoconf Makefile.in syntax). |
• Changed |
axfrdns-conf and axfrdns6-conf - refactor log directory creation, improve error messages. |
• Changed |
dbldns-conf and dbldns6-conf - refactor log directory creation. |
• Changed |
rbldns-conf and rbldns6-conf - refactor log directory creation. |
• Changed |
tinydns-conf and tinydns6-conf - refactor log directory creation. |
• Changed |
walldns-conf and walldns6-conf - refactor log directory creation. |
• Changed |
dnscache-conf and dnscache6-conf - code optimisation. |
• Fixed |
dnscache-conf and dnscache6-conf - root/server directory scripts creation. |
• Fixed |
dnscache-conf and dnscache6-conf - log directory creation. |
v4.0 - December 28, 2017
The major items in this release:
- Major change in the tinydns-data file format (source and binary).
- New utility (tinydns-v1data2data) to convert original tinydns-data file format to the new format.
- New utility (tinydns-v3data2data) to convert version 3 tinydns-data file format to the new format.
- EDNS(0), RFC 6891, UDP Message Size - implemented in all responders and requesters.
- New utility (tinydns-bind2data) to convert zone files to native tinydns-data format.
- Various code changes.
- Fixes.
Version Notes |
• API change |
tinydns-data - data file format change; see sub-section below. |
• New |
EDNS(0), RFC 6891, UDP Message Size - deployed for all responders and requesters.
Previously only deployed for dnscache/dnscache6 responder interface. |
• New |
tdlookup_doit() - return A and AAAA additional section resource records for SRV resource record query.
tindydns, tinydns6 affected. |
• New |
tinydns-bind2data - Convert BIND zone data into tinydns-data format. |
• New |
tinydns-dnlist2data - Convert a list of domain names to tinydns-data format SOA records. |
• New |
tinydns-v1data2data - Convert version 1 tinydns-data format into new tinydns-data format. |
• New |
tinydns-v3data2data - Convert version 3 tinydns-data format into new tinydns-data format. |
• New |
tinydns-data - Multi segment Text (TXT ) resource type implemented.
Useful for creating records for DNS Service Discovery (DNS-SD). |
• New |
tinydns-data - Resource Record Signature (RRSIG ) resource type implemented. |
• New |
tinydns-data - Name Server (NS ) resource type implemented. |
• New |
tinydns-data - Next Secure (NSEC ) resource type implemented. |
• New |
tinydns-data - Delegation Signer (DS ) resource type implemented. |
• Changed |
Maximum UDP size for EDNS(0) payload is 1410. |
• Changed |
axfr-get - Implement more meaningful usage errors. |
• Changed |
tinydns-data(8) - Include comment about strings that are longer than 255 bytes for TXT resource records. |
• Changed |
tinydns-data(8) - Additional DNSSEC Algorithm literals. |
• Changed |
tinydns-data - Additional DNSSEC Algorithm Numbers implemented. |
• Changed |
tinydns-data - Code changes. |
• Changed |
die.h - changed const char PROGRAM[] to const char *PROGRAM . |
• Changed |
die.c - inserted const char *PROGRAM = 0; . |
• Changed |
All programs - removed global initialisation of PROGRAM .
Inserted PROGRAM = *argv; into main() . |
• Changed |
All programs - removed program name from USAGE[] string. |
• Changed |
Implement #include <nemo/macro_noreturn.h> from Nemo DJB Library. |
• Changed |
Implement #include <nemo/macro_unused.h> from Nemo DJB Library. |
• Fixed |
tinydns-data - IPv6 location labels. |
• Fixed |
tindydns, tinydns6 - IPv6 location label handling. |
• Fixed |
tindydns, tinydns6 - referral handling. |
• Fixed |
dnscache, dnscache6 - referral handling. |
• Fixed |
tdlookup_doit() - return additional section records iff not in answer section. |
• Fixed |
axfrdns-conf.c - creation of run script. |
• Fixed |
axfrdns6-conf.c - creation of run script. |
• Requires |
Nemo DJB Library v2.10 or later. |
• Requires |
Nemo DJBIO Library v2.2.3 or later. |
• Requires |
Nemo DJBCAL Library v2.1.8 or later - new dependancy, DNSSEC resource record implementation. |
tinydns-data - Data File Changes
- The record field order has changed. Refer to tinydns-data(8) for new record format.
- '
@ ', '+ ' and '= ' resource record records can now have multiple IPv4 and/or IPv6 addresses.
- Type '
3 ' resource record records have been discontinued and replaced by type '= ' resource record records
- Type '
6 ' resource record records have been discontinued and replaced by type '+ ' resource record records
TXT resource record records can now have multiple text segments - particularly useful for DNS Service Discovery (DNS-SD).
- Location label records can now have an IPv4 and/or IPv6 address.
RRSIG record type supported ('RRSIG ' special verb).
NS record type supported ('NS ' special verb).
NSEC record type supported ('NSEC ' special verb).
SOA record type "special character" changed from 'Z ' to 'SOA ' special verb (unconditional).
CNAME record type "special character" changed from 'C ' to 'CNAME ' special verb (unconditional).
SRV record type "special character" changed from 'S ' to 'SRV ' special verb (unconditional).
NAPTR record type "special character" changed from 'N ' to 'NAPTR ' special verb (unconditional).
Refer to tinydns-v1data2data(8) and tinydns-v3data2data(8) for converting file formats.
Refer to the upgrade documentation for examples on how to convert file formats.
v3.0.3 - August 18, 2017
This release contains optimisations and fixes. Particular emphasis has been on cross platform compatibility.
Tested on Linux raspberrypi 4.9.35-v7+ #1014 SMP, armv7l GNU/Linux - Raspbian with Desktop, 32 bit platform.
Version Notes |
• Changed |
conf-cc - expand examples. |
• Changed |
tinydns-data.c - reorganised includes. |
• Changed |
tinydns-edit.c - reorganised includes. |
• Changed |
dnscache-conf.c, dnscache6-conf.c - reorganised includes. |
• Changed |
generic-conf.c - reorganised includes. |
• Changed |
roots4.c, roots6.c - reorganised includes. |
• Changed |
axfr-notify.c - reorganised includes. |
• Changed |
log*.c - log_number() parameter is now uint64_t . |
• Fixed |
axfr-notify.c - simplified get_local_ip_list() access to ifa->ifa_addr->sa_data data structure. |
• Fixed |
lame4_servers.c, lame6_servers.c - time_t arithmetic. |
• Requires |
Nemo DJB Library v2.8.3 or later. |
• Requires |
Nemo DJBIO Library v2.2.2 or later. |
v3.0.2 - August 1, 2017
This release contains changes and fixes.
Version Notes |
• Changed |
dbldns, dbldns6 - processes wild cards at TLD level (eg: *.png). |
• Fixed |
printrecord_cat() - formatting of output (missing space). |
• Fixed |
tinydns-data - default SOA Expire is now set to 1209600 (2 weeks).
RFC 1912 suggests a range of 2 to 4 weeks. |
• Fixed |
dnscache.c, dnscache6.c - initialisation of minttl variable. |
v3.0.1 - June 26, 2017
This release contains new features, changes and fixes.
Version Notes |
• New |
tinydns-data - DNS Public Key (DNSKEY ) resource type implemented. |
• Changed |
wilddns-data - accepts optional IPv4 and/or IPv6 address for a given FQDN. |
• Changed |
wilddns - can process optional IPv4 and/or IPv6 address for a given FQDN. |
• Changed |
wilddns6 - can process optional IPv4 and/or IPv6 address for a given FQDN. |
• Changed |
tinydns-data - DNSKEY resource type supported. |
• Changed |
printrecord_cat() - DNSKEY resource type supported. |
• Changed |
printrecord_cat() - LOC resource type limited support. |
• Changed |
die_*() - some minor restructuring and improvements. |
• Changed |
Build system - improvements. |
• Fixed |
rbldns - improper parsing of text result. |
• Fixed |
dbldns - improper parsing of text result. |
• Requires |
Nemo DJB Library v2.8.1 or later. |
v3.0 - May 30, 2017
This release contains optimisation, bug fix changes, documentation updates and a data file format change for tinydns-data, more details below.
Version Notes |
• API change |
tinydns-data - data file format change; see sub-section below. |
• API change |
dnscache - now uses the file servers/data.cdb instead of various text files in the servers directory. |
• API change |
dnscache6 - now uses the file servers/data.cdb instead of various text files in the servers directory. |
• New |
dnscache-data - data tool for dnscache(8). |
• New |
dnscache6-data - data tool for dnscache6(8). |
• New |
dnscache-dnlist2data - data conversion tool for dnscache-data(8). |
• New |
dnscache6-dnlist2data - data conversion tool for dnscache6-data(8). |
• New |
dnscache-iplist2data - data conversion tool for dnscache-data(8). |
• New |
dnscache6-iplist2data - data conversion tool for dnscache6-data(8). |
• New |
wilddns - domain-name-listing DNS service (IPv4 network connection). |
• New |
wilddns6 - domain-name-listing DNS service (IPv6 network connection). |
• New |
wilddns-conf - sets up an domain-name-listing DNS service (IPv4 network connection). |
• New |
wilddns6-conf - sets up an domain-name-listing DNS service (IPv6 network connection). |
• New |
wilddns-data - data tool for wilddns(8) and wilddns6(8). |
• New |
axfrdns6-conf - sets up a DNS zone-transfer service (IPv6 network connection). |
• New |
dbldns6-conf - sets up an domain-name-listing DNS service (IPv6 network connection). |
• New |
tinydns6-conf - sets up an domain-name-listing DNS service (IPv6 network connection). |
• New |
Certification Authority Authorization (CAA ) resource type implemented. |
• New |
dns_domain_labelcount() - count the number of labels in dns_domain data. |
• Changed |
axfr-notify - sort SOA list for sa_vector_find() . |
• Changed |
dnscache, dnscache6 - relax enforcement of RFC 2181 s10.3 for CNAME in MX resource record lookups. |
• Changed |
dbldns, dbldns6 - extended log reporting. |
• Changed |
rbldns, rbldns6 - extended log reporting. |
• Changed |
dbldns, dbldns6 - code optimisation. |
• Changed |
rbldns, rbldns6 - code optimisation. |
• Changed |
dbldns, dbldns6 - implement wildcard labels - whole labels only. |
• Changed |
dbldns-data - implement wildcard labels - whole labels only. |
• Changed |
replaced all comparison instances of '== -1 ' to '< 0 '. |
• Changed |
Global constants divided into individual modules. |
• Changed |
Build system - improvements. |
• Fixed |
axfdns-conf(1) - minor edits. |
• Fixed |
dbldns-conf(1) - man page description. |
• Fixed |
dbldns, dbldns6 - made behaviour same as rbldns and rbldns6,
except that '$' substitution is for the queried domain. |
• Fixed |
tinydns-data - error description for IP address fields. |
• Fixed |
dns_domain_erase() - now sets length to 1. |
• Fixed |
dns_domain_length() - minimum length is 1. |
• Fixed |
dns_domain_diff() - updated to reflect change in dns_domain_length() . |
• Fixed |
dns_domain_equal() - updated to reflect change in dns_domain_length() . |
• Fixed |
Various manual page minor typographical errors. |
• Requires |
Nemo DJB Library v2.8 or later. |
tinydns-data - Data File Changes
- Generic record type "special character" changed from '
: ' to '? '.
- requires a colon after the "special character".
- the "special character" can now substituted for the "conventional" resource record name - referred to "special verb" in man page.
CAA record type supported ('CAA ' special verb).
SRV record type "special character" changed from 'S ' to 'SRV ' special verb.
NAPTR record type "special character" changed from 'N ' to 'NAPTR ' special verb.
SPF record type removed - RFC 7208, s3.1.
v2.2.1 - February 12, 2017
This release contains optimisation, compliance and bug fix changes. The main focus has been in dnscache and dnscache6 improvements.
Version Notes |
• New |
dns_domain_ok() - low level routine for detecting simple format errors in dns_domain data. |
• New |
rbl - shell script to simplify the use of rblcheck. |
• New |
test_domain_name_decode - testing of domain name decoding. |
• Changed |
dnscache, dnscache6 - many internal routines and literals renamed. |
• Changed |
cache.c - use time_t instead of struct tai . |
• Changed |
dnsmxip6 - returns results in sorted order. |
• Changed |
dns_domain_todot_cat.c - minor code changes - simplicity. |
• Changed |
dns_rcip4.c - minor code changes - simplicity. |
• Changed |
dns_rcip6.c - minor code changes - simplicity. |
• Changed |
dns_rcrw.c - minor code changes - simplicity. |
• Changed |
ignore_ip6_init() - better handling of openreadlistclose() . |
• Changed |
Accommodate changes in Nemo DJBIO Library v2.2.1. |
• Changed |
dnscache, dnscache6 - many code changes to assist in debugging DNS anomalies. |
• Changed |
dnscache, dnscache6 - renamed many internal routines - names now closely match function. |
• Fixed |
dnscache, dnscache6 - enforced RFC 2181 s10.3 - CNAME prohibited in NS and MX resource record lookups. |
• Fixed |
dnscache, dnscache6 - fixed high CPU and I/O load dealing with lame servers.
Both now keep a list of lame servers internally, will not poll them for at least 30 minutes (RFC4697 s2.2.1). |
• Fixed |
dnsqr - third parameter requirement removed. |
• Fixed |
dns6_ip4() - set errno for oversized query. |
• Fixed |
dns6_ip6() - set errno for oversized query. |
• Fixed |
dns4_ip4() - set errno for oversized query. |
• Fixed |
dns4_ip6() - set errno for oversized query. |
• Fixed |
dns_domain_todot_cat() - bug in change to lower case,
not likely to show as most code explicitly sets to lower case externally. |
• Fixed |
dns_domain_fromdot() - double dot sequences now return error. |
• Fixed |
dns_domain_fromdot() - invalid octal sequences now return error. |
• Fixed |
tinydns-data - default SOA Minimum TTL is now set to 3600.
RFC 2308 stipulates a range of 3600 to 86400 seconds. |
• Fixed |
Build system - minor improvements. |
• Removed |
FILES - unused and high maintenance. |
• Requires |
Nemo DJBIO Library v2.2.1 or later. |
• Requires |
Nemo DJB Library v2.7 or later. |
v2.2 - July 18, 2016
This release is contains API change. The main focus has been in struct dns6_transmit .
Version Notes |
• API change |
struct dns6_transmit - remove data member net_if , scope id is now incorporated in ip6_address . |
• Changed |
Changes to build system. |
• Changed |
print-docman.sh and print-mancat.sh - removed second parameter, output now to stdout . |
• Changed |
print-docman.sh - renamed to print-sedit.sh. |
• Fixed |
All dns* programs - domain name queries are unconditionally set to lower case. |
• Requires |
Nemo DJB Library v2.6 or later. |
• Requires |
Nemo DJBIO Library v2.2 or later. |
v2.1.4 - June 20, 2016
Version Notes |
• Changed |
dns4_mxip4() , dns4_mxip6 - add host IP fallback to results. |
• Changed |
dns6_mxip4() , dns6_mxip6 - add host IP fallback to results. |
• Changed |
conf-cc - add comment about building on gcc+glibc platform. |
• Fixed |
Minor changes to build system. |
• Fixed |
utime.c - compile error (gcc+glibc) - changed some #include declarations. |
• Fixed |
dns6_mxip6() - initialiser of ip6_vector . |
• Requires |
Nemo DJB Library v2.5.2 or later. |
• Requires |
Nemo DJBIO Library v2.1.5 or later. |
• Requires |
Nemo CDB Library v3.0.3 or later. |
v2.1.3 - March 30, 2016
Version Notes |
• Changed |
tinydns-data(8) - add tinydns6 references. |
• Changed |
dnscache, dnscache6 - moved log_stats() out of main event loop. |
• Changed |
dnscache, dnscache6 - improved glueless NS resource record detection and processing. |
• Changed |
log_stats() - optimised for new use. |
• Changed |
hier.c - implemented unsigned int install_manuid from Nemo DJB Library v2.5.1. |
• Fixed |
Build system - minor improvements. |
• Requires |
Nemo DJB Library v2.5.1 or later. |
v2.1.2 - December 2, 2015
Version Notes |
• Changed |
Accommodate changes in Nemo DJB Library v2.5. |
• Changed |
Various vector based data structures allocation routines. |
• Changed |
Various vector based data structures allocation routines - declared as static inline . |
• Requires |
Nemo DJB Library v2.5 or later. |
v2.1.1 - October 14, 2015
Version Notes |
• New |
rbldns6-conf - sets up an IP-address-listing DNS service (IPv6 network connection). |
• New |
rbldns6-conf(8) - manual page. |
• New |
rbldns6-data - data tool for rbldns6(8) (IPv6 network connection). |
• New |
rbldns6-data(8) - manual page. |
• New |
rbldns6 - an IP-address-listing DNS server (IPv6 network connection). |
• New |
rbldns6(8) - manual page. |
• New |
conf-rbldns6-max-mask - configuration option. |
• Changed |
dd4() , dd6() - code optimisation. |
• Changed |
rbldns-conf(8) - add reference to IPv4 connectivity. |
• Changed |
rbldns-data - now sets the mask for IP addresses in the database. |
• Changed |
rbldns-data(8) - add reference to IPv4 connectivity, changed comment about mask for IP address, fixed reference to rbldns(8). |
• Changed |
rbldns(8) - add reference to IPv4 connectivity. |
• Changed |
global_ip6.c - removed testing of IPv6 native address. |
• Changed |
dnstrace6.c - removed testing of IPv6 native address. |
• Changed |
walldns6.c - removed testing of IPv6 native address. |
• Changed |
Minor reorganisation of build process - shifted/renamed DNS domain tests. |
• Fixed |
rbldns-data - now configures rbldns to be found in the 'sbin' directory. |
v2.1 - September 18, 2015
Version Notes |
• New |
axfr-notify - program to notify secondary DNS servers via a NOTIFY request. |
• New |
axfr-notify(8) - manual page. |
• New |
dnscache6-conf - sets up an IPv6 DNS cache service. |
• New |
dnscache6-conf(8) - manual page. |
• New |
dns_ns(3) - manual page. |
• New |
dns_ns_packet(3) - manual page. |
• New |
dns4_ns() - low level routine for reporting NS resource record via IPv4 network connection. |
• New |
dns6_ns() - low level routine for reporting NS resource record via IPv6 network connection. |
• New |
dns_soa(3) - manual page. |
• New |
dns_soa_packet(3) - manual page. |
• New |
dns4_soa() - low level routine for reporting SOA resource record via IPv4 network connection. |
• New |
dns6_soa() - low level routine for reporting SOA resource record via IPv6 network connection. |
• New |
dns4_notify() - low level routine for generating IPv4 NOTIFY requests. |
• New |
dns6_notify() - low level routine for generating IPv6 NOTIFY requests. |
• Changed |
Updated to Nemo CDB v2.2. |
• Changed |
Updated to Nemo DJB Library v2.4. |
• Changed |
tinydns-data(8) - fixed broken formatting, rearranged parts of SEE ALSO, added tinydns6 cross reference to SEE ALSO. |
• Changed |
log_*() - renamed many routines for clarity and consistency. New routine to log empty cache entries. |
• Changed |
djbdns(3) - document $DNSCACHEIP, remove "dns_env_version" documentation. |
• Changed |
dnscache, dnscache6 - upgraded from ignoreip to ignoreip4 and ignoreip6. |
• Changed |
dnscache, dnscache6 - SERVFAIL , NXDOMAIN log messages now have more consistant format. |
• Changed |
ioquery4_havepacket.c: ignore_ip() - updated to new ip4_vector_find() API. |
• Changed |
ioquery6_havepacket.c: ignore_ip() - updated to new ip6_vector_find() API. |
• Changed |
tinydns, tinydns6, axfdns, axfrdns6, dbldns, dbldns6, rbldns, walldns, walldns6 - log NOTIFY queries - log type is "N". |
• Changed |
tinydns, tinydns6, axfdns, axfrdns6, dbldns, dbldns6, rbldns, walldns, walldns6 - log NXDOMAIN query results - log type is "X". |
• Changed |
tinydns, tinydns6, axfdns, axfrdns6, dbldns, dbldns6, rbldns, walldns, walldns6 - log id as decimal. |
• Changed |
various sources files - minor code optimisation. |
• Fixed |
dnscache, dnscache6 - do not respond NXDOMAIN when nameserver supplies answers.
NXDOMAIN response will only occur with zero answers. (cf AVG) |
• Fixed |
dnscache, dnscache6 - TCP responses. |
• Fixed |
dnscache, dnscache6 - for truncated queries, response answer counts are set to zero. (cf DIG) |
• Fixed |
dnscache, dnscache6 - fixed processing "glueless" servers created by CDNs expiring glue resource records before NS resource records.
These events are logged. (cf CloudFlare) |
• Fixed |
dnscache, dnscache6 - fixed processing of CNAME records - now handles CDNs a lot better. (cf CloudFlare) |
• Fixed |
dnscache, dnscache6 - fixed processing of cached results. |
• Fixed |
dnscache, dnscache6 - hash floods eliminated - updated to use siphash24() from Nemo DJB Library. |
• Fixed |
rblcheck.c - removed incorrect options from usage string. |
• Fixed |
qt_vector.c: init4_data() - extended initialisation of member variables. |
• Fixed |
qt_vector.c: init6_data() - replaced call to qt_data_erase() with extended initialisation of member variables. |
• Fixed |
mxname_vector_erase() - trap errors from stralloc_erase() . |
• Fixed |
rblcheck - increase parameter checking. |
• Fixed |
dns_name_packet() - record all PTR records, not just the first. |
• Requires |
Nemo DJB Library v2.4 or later. |
• Requires |
Nemo CDB Library v3.0 or later. |
v2.0.3 - August 7, 2015
Version Notes |
• Changed |
dnscache6 - okclient6.c: okclient6() replace ip6_fmt() with ip6_fmt_uncompressed() . |
• Changed |
dnscache6(8) - change examples as a result of using ip6_fmt_uncompressed() . |
• Changed |
tdlookup.c - replace float values with integers. |
• Changed |
server4.c: server4_doit() - code optimisation. |
• Changed |
server6.c: server6_doit() - code optimisation. |
• Changed |
Build system - minor improvements. |
• Fixed |
dns_mx(3) - change 2 SEE ALSO references. |
• Fixed |
tinydns, rbldns, walldns, dbldns - server4.c: server4_doit() unintentional null dereference (wrong constant used). |
• Fixed |
tinydns6, walldns6, dbldns6 - server6.c: server6_doit() unintentional null dereference (wrong constant used). |
• Fixed |
trylsock.c - implement prototype for main() . |
• Removed |
trycpp.c - unused. |
v2.0.2 - July 31, 2015
Version Notes |
• Changed |
Accommodate changes in Nemo DJB Library v2.2.4. |
• Changed |
Manual pages - incorporate first line of file 'VERSION' into footer. |
• Requires |
Nemo DJB Library v2.2.4 or later. |
v2.0.1 - July 15, 2015
Version Notes |
• Changed |
dns4_transmit(3) - removed reference to "skip IPv4 addresses of 0.0.0.0"; now irrelevant. |
• Changed |
dns6_transmit(3) - removed reference to "skip IPv6 addresses of ::0"; now irrelevant. |
• Changed |
roots4.c: roots4_search() - code optimisation. |
• Changed |
roots6.c: roots6_search() - code optimisation. |
• Changed |
query4.c: roots_and_ns() - code optimisation. |
• Changed |
query4.c: do_query_servers() - code optimisation. |
• Changed |
query6.c: roots_and_ns() - code optimisation. |
• Changed |
query6.c: do_query_servers() - code optimisation. |
v2.0 - July 6, 2015 - Major Changes from Original Distribution
General:
Version Notes |
• New |
IPv6 support. |
• New |
Makefile target: "clean". |
• New |
Imported manual pages from third party sources. |
• Changed |
Build/installation framework provided by Nemo DJB Library. |
• Changed |
Converted K&R prototypes to ANSI. |
• Changed |
All manual pages have been converted to mdoc(7) format. |
• Changed |
Additional annotations/comments - source code files. |
• Changed |
Using some of the standard integer types in the POSIX standard. |
• Changed |
Changed many signed integers into unsigned integers. |
• Changed |
Source code formatting is now "Compact Control Readability Style" - variant of K&R, similar to the Stroustrup variant.
One exception: single line conditional returns are on same line as the conditional.
Long lines are rarely wrapped.
Indent size is two spaces. |
• Fixed |
Patched source code to use #include <errno.h> |
• Fixed |
Resolved all compile errors and warnings from the GNU C compiler (-W -Wall -Werror). |
• Fixed |
In scripts and the Makefile, all references to "head -1" have been changed to "head -n 1". |
• Removed |
"systype" processing. |
Programs:
Version Notes |
• New |
dnscache, dnscache6 - now capable of handling cache size up to 4GB. |
• New |
dnscache6 - IPv6 connectivity, equivalent to dnscache. |
• New |
dbldns - domain-name-listing DNS server (IPv4 connection). |
• New |
dbldns6 - domain-name-listing DNS server (IPv6 connection). |
• New |
dnsip6 - lookup IPv6 (AAAA ) addresses. |
• New |
dnsmxip6 - prints the (IPv6) MX records of a FQDN |
• New |
tinydns6 - IPv6 connectivity, equivalent to tinydns. |
• New |
rblcheck - query IP-address-listing DNS servers (RBLs) - IPv4 connectivity. |
• New |
rblcheck6 - IPv6 connectivity, equivalent to rblcheck. |
• New |
axfrdns6 - IPv6 connectivity, equivalent to axfrdns. |
• New |
dblcheck - query domain-name-listing DNS server. |
• Changed |
tinydns-data - now handles natively, resource records of type AAAA, SRV, NAPTR.
Greatly improved error handling of improper data. |
• Changed |
dnsmx - results now printed in "pref" order. |
• Changed |
dnsmxip - results now printed in "pref" order. |
• Removed |
pickdns, et al - now handled by tinydns. |
Routines and data structures:
Version Notes |
• API change |
Changed many signed return values into unsigned return values. |
• API change |
Changed many prototypes to use data types in Nemo DJB Library. |
• API change |
dns_domain - DNS name data manipulation. |
• API change |
dns_type - DNS type data manipulation. |
• API change |
dns_class - DNS class data manipulation. |
• API change |
dns_id - DNS id data manipulation. |
• Changed |
Many routines replaced by those found in Nemo DJB Library. |
• Changed |
Routines that used the 1st generation of buffered I/O are now using Nemo DJBIO Library based buffered I/O. |
• Changed |
Many routines replaced by those found in Nemo CDB. |
Libraries:
Version Notes |
• New |
libdjbdns.a - the main library. |
|