Skip to content
  • Chris Webb's avatar
    Import my fork of tinydns for public release · bd6c5d1a
    Chris Webb authored
    This DNS server is heavily derived from Dan Bernstein's djbdns and cdb
    packages which he placed in the public domain on 28th December 2007 and
    21st July 2009 respectively.
    
    Significant differences include:
    
      - support for binding multiple IPv4 and IPv6 listeners
      - support for IPv6 addresses in host, MX and NS records
      - support for SRV records including IPv6 addresses
      - support for both IPv4 and IPv6 prefixes in location lines
      - support for parsing IPv6 addresses with zero-compression
      - support for declaring an otherwise empty node as non-terminal
      - support for continuation lines and \-escapes in any field
      - full error checking when parsing records in the data file
      - more standard daemon behaviour configured with command flags
      - avoiding name compression overflow in response_addname()
      - correct publishing of alias chains, with AA bit set correctly
      - correct handling of wildcards per section 4.3.3 of RFC 1034
      - refusing queries for unknown zones rather than dropping them
      - minimised responses omitting authority NS records when allowed
      - RFC 8482 synthetic HINFO replies to queries with qtype ANY
      - dropping query logging and load-balancing with >8 A records
      - binding with SO_REUSEPORT so multiple instances can load balance
      - a rewritten scan.[ch] including overflow detection
      - a reworked stralloc.h including support for static buffers
      - consistent use of stralloc arguments wherever convenient
      - dropping unnecessary wrappers around basic POSIX calls
      - use of <stdint.h> uint32_t and uint64_t where appropriate
      - use of libc buffered IO rather than a custom reimplementation
      - use of libc err() and errx() rather than custom strerr
      - use of 64-bit seconds from the epoch rather than hex TAI
      - nicer handling of TTD (+T/-T => publish after/before time T)
      - general restructuring to match my own taste and C style
    
    Although documentation is a project for the future, I do run this
    nameserver in production and intend to actively maintain it.
    bd6c5d1a
This project is licensed under the Other. Learn more