- Add resolver ASN and IP targeting (Ewan Chou)
- Support for SPF records (Afsheen Bigdeli)
- Support weighted CNAME responses
- Add /48 subnet targeting for IPv6 ip targeting
- Don't log metrics to stderr anymore
- Make TTLs set on individual labels work
- Return NOERROR for "bar" if "foo.bar" exists (Geoffrey Papilion)
- Add Illinois to the us-central region group
- Add benchmark tests (Miek Gieben)
- Improve documentation
- Use godep to track code dependencies
- Don't add a '.' prefix on the record header on apex records
- Fix parsing of 'targeting' option
- Add server id and ip to _country responses for easier debugging.
- Fix GeoIP custom directory bug (in geoip library)
- Update EDNS-SUBNET option number (in dns library)
- Update dns API to use new CountLabel and SplitDomainName functions
- Add test for mIXed-caSE queries (fix was in dns library)
- Add per-zone targeting configuration
- Support targeting by region/state with GeoIPCity
- Don't send backlogged zone counts to stathat when support is enabled
- Fix edns-client-subnet bug in dns library so it works with OpenDNS
- Support per-zone stats posted to StatHat
- Support TXT records
- Don't return NXDOMAIN for A queries to _status and _country
- Set serial number from file modtime if not explicitly set in json
- Improve record type documentation
- Warn about unknown record types in zone json files
- Add -version option
- Count EDNS queries per zone, pretty status page
- Status page has various per-zone stats
- Show global query stats, etc
- Add option to configure 'loggers'
- Add -cpus option to use multiple CPUs
- Add sample geodns.conf
- Use numbers instead of strings when appropriate in websocket stream
- Various refactoring and bug-fixes
- Begin more detailed /status page
- Make SOA record look more "normal" (cosmetic change only)
- Add StatHat feature
- Improve error handling for bad zone files
- Don't call runtime.GC() after loading each zone
- Set the minimum TTL to 10x regular TTL (up to an hour)
- service script: Load identifier from env/ID if it exists
- Work with latest geoip; use netmask from GeoIP in EDNS-SUBNET replies
- Add licensing information
- De-configure zones when the .json file is removed
- Start adding support for a proper configuration file
- Add -identifier command line option
- Various tweaks
- Always log when zones are re-read
- Remove one of the runtime.GC() calls when configs are loaded
- Set ulimit -n 64000 in run script
- Cleanup unused Zones variable in a few places
- Log when server was started to websocket /monitor interface
- Fix crash when getting unknown RRs in Extra request section
- Beta EDNS-SUBNET support.
- Allow A/AAAA records without a weight
- Don't crash if a zone doesn't have any apex records
- Show line with syntax error when parsing JSON files
- Add --checkconfig parameter
- More tests
- Initial EDNS-SUBNET support.
- Better error messages when parsing invalid JSON.
- -checkconfig command line option that loads the configuration and exits.
- The CNAME configuration changed so the name of the current zone is appended to the target name if the target is not a fqdn (ends with a "."). This is a rare change not compatible with existing data. To upgrade make all cname's fqdn's until all servers are running v2.2.0 or newer.