Skip to content

Releases: qdm12/dns

v1.10.0

23 Jul 15:23
Compare
Choose a tag to compare

Go API change

  • Do not mock os.OpenFile in pkg/nameserver package

v1.9.0

16 Jul 20:20
Compare
Choose a tag to compare

Documentation

  • Run container as root for older Docker and/or Kernel

Maintenance

  • Upgrade github.com/qdm12/golibs package for newer command package
    • Run Unbound with a different process group id so it is not stopped when receiving an OS signal
  • Update golangci-lint to v1.41.1
    • Update list of linters
    • Fix lint issues

v1.8.0

03 Jun 21:27
Compare
Choose a tag to compare

Fixes

  • Blacklist settings log for unblocked hostnames

Maintenance

  • Upgrade github.com/qdm12/golibs dependency
  • Upgrade github.com/qdm12/updated dependency

v1.7.0

14 May 16:20
Compare
Choose a tag to compare

Fixes

  • Split ::ffff:0:0/96 in multiple IPv6 mapped IPv4 private networks
  • Parse IPv6-mapped IPv4 addresses correctly (rebinding protection) using inet.af/netaddr

Documentation

  • Raspberry Pi setup step for Alpine 3.13 (see #77)

Maintenance

  • Move all splash files in pkg/splash
  • Use netaddr.IP directly as map key for IP blacklist
  • Rename IPNets to IPPrefixes to match netaddr's API

Go API

  • Use of netaddr package for IPs and IP prefixes instead of net
  • DoH API: Content type set to application/dns-message
  • DoH API: Set the Accept header to application/dns-message
  • Missing early returns (see #69)
  • DoT log listening server port (see #73 and #72)
  • Fix examples: formatting of logs (see #70)

v1.6.0

07 Apr 01:09
Compare
Choose a tag to compare

Bug fixes

  • Fix unbound loop logic sometimes running two Unbound instances
  • Fix restart logic in unbound loop
  • Fix proper exit on crash in unbound loop

Features

  • New DoT providers
    • cira family
    • cira private
    • quad9 secured
    • quad9 unsecured
  • Upgrade from Alpine 3.12 to 3.13
  • Upgrade from Unbound 1.10.1 to 1.13.0
  • CHECK_UNBOUND renamed to CHECK_DNS (retro-compatibility maintained)

Maintenance

  • Remove duplicate signal logic in main.go
  • Update logging library included in golibs
  • Always use DNSSEC validation for Unbound as all providers support it
  • Remove pkg/models type aliases
  • Use pkg/provider and remove pkg/models (ProviderData)
  • Remove unused PUID and PGID for Unbound
  • Move Unbound Settings to pkg/unbound package
  • Move Username to pkg/unbound's Settings
  • Move all settings parsing, setting and validation in the internal/config package

Go API

  • pkg/dot package
    • DoT resolver
    • DoT DNS server
    • Support for both IPv4 and IPv6 DoT/DNS upstream server IP addresses
    • Option to fallback on plain DNS on failure
    • Thread safe cycling operation for all settings (service providers, service IP addresses etc.)
    • Specify DNS server listening port
  • pkg/doh package
    • DoH resolver (using the DoT resolver to resolve the DoH url)
    • DoH DNS server
    • Thread safe cycling operation for all settings (service providers, service IP addresses etc.)
    • Specify DNS server listening port
  • pkg/provider package
    • All providers DNS, DoT and DoH information
    • Add more providers
  • pkg/cache package
    • LRU based caching for DNS servers
    • Used by pkg/dot and pkg/doh
  • pkg/blacklist
    • Hostnames blocking
    • IPs blocking
    • IP networks blocking
    • Blocklist building with BuilderSettings
  • Mocks generated for all new packages
  • examples/ directory with example main.go for DoT and DoH resolvers and DNS servers

v1.5.1

06 Apr 05:08
Compare
Choose a tag to compare

Bug fixes

  • Remove problematic private address ::ffff:0:0/96
  • Fix scoping issue in unbound loop
  • Fix restart logic in unbound loop
  • Fix proper exit on crash in unbound loop
  • Remove debug print statement

v1.4.1

06 Apr 05:11
Compare
Choose a tag to compare

Bug fixes

  • Fix scoping issue in unbound loop
  • Fix restart logic in unbound loop
  • Remove debug print statement

v1.5.0

02 Apr 01:11
Compare
Choose a tag to compare

Bug fixes

  • Fix settings formatting in logs of program

Documentation

  • Update readme

Maintenance

  • Upgrade qdm12/golibs and all direct dependencies
  • Upgrade to Go 1.16
  • Refactor main.go using signal.NotifyContext
  • CI Github Actions and Dockerfile simplifications
    • Run tests in CI to pass coverage
    • Run lint and test on build architecture only
    • Bump golangci-lint to 1.37.1
    • Cross compile Go binary using native Go compiler
    • Only the final image is run on emulated Docker CPU architecture
  • Prepare for DoT and DoH implementation in Go
    • Split apart blacklisting and OS related functions from pkg/unbound package to pkg/blacklist and pkg/nameserver
    • Move WaitForUnbound from pkg/unbound to pkg/check as WaitForDNS

Dev setup

  • Fix Go extension name in dev container
  • Change bind mounts in dev container
    • ~/.ssh as read and write (causing issue on Windows otherwise)
    • Bind mount shell history ~/.zsh_history

v1.4.0

01 Feb 01:21
0177a17
Compare
Choose a tag to compare

Features

  • Configurable access control
  • Create include.conf in /etc directory
  • Go API: add settings String() method using Lines() method
  • Go API: Improve settings formatting (#56)
  • Add providers variants
    • Cloudflare security
    • Cloudflare family
    • Cleanbrowsing family
    • Cleanbrowsing adult

Bug fixes

  • Fix UseDNSSystemWide
  • Fix keepNameserver option effect
  • Fix settings Lines() method

Maintenance

  • Go API: CA certificates as input to Configurator
  • Using slices instead of maps for config lines
  • Update golibs (params package)
  • Refactor run loop
  • Fix lint errors

v1.4.0-rc5

24 Jan 19:43
Compare
Choose a tag to compare
v1.4.0-rc5 Pre-release
Pre-release
Fix lint errors