Skip to content

v1.11.1 - Bootstrap DNS & Custom DoH Paths

Latest

Choose a tag to compare

@KianiDev KianiDev released this 26 Apr 18:57
· 7 commits to master since this release

v1.11.1 – Bootstrap DNS & Custom DoH Paths

This release introduces configurable bootstrap DNS servers to resolve upstream hostnames for encrypted transports (DoT, DoH, DoQ) and custom URL paths for DoH servers. The legacy dns_resolver_server option is removed in favour of the new [bootstrap] section.


✨ Added

  • Bootstrap DNS servers – Specify a list of DNS servers (IP:port) in [bootstrap] to resolve upstream hostnames. If all bootstrap servers fail, the system resolver is used as fallback.
    [bootstrap]
    servers = 1.1.1.1:53, 8.8.8.8:53
    timeout = 2.0
    retries = 2
  • Custom DoH path – Each upstream in [upstreams.<name>] can now define a path (e.g., /dns-query, /x/dns-query, /custom). The default remains /dns-query.
  • New tests – 9 unit/integration tests covering bootstrap resolution, fallback, caching, and custom DoH paths (total suite: 142 tests).

🛠️ Changed

  • Removed dns_resolver_server from [upstream] section. Migrate existing configurations to the [bootstrap] section.
  • DNSResolver._resolve_upstream_ip now uses bootstrap servers if configured, then falls back to the system resolver.
  • DoH forwarding methods (_forward_https, _forward_https1/2/3) accept a path parameter and use it in the HTTP request.
  • Connection pooling keys for HTTP/2 and HTTP/3 include the path, allowing separate pools for different paths on the same host.

🧪 Testing

  • 142 tests passing (unit + integration).
  • New bootstrap tests:
    • test_bootstrap_resolves_hostname
    • test_bootstrap_fallback_to_next_server
    • test_bootstrap_fallback_to_system_resolver
    • test_bootstrap_cache
    • test_bootstrap_no_servers_fallback_to_system
  • New custom path tests:
    • test_custom_path_https1/2/3
    • test_custom_path_default_when_missing
    • test_custom_path_in_upstream_list

📦 Upgrading

  • Update existing installation:
    ./installer.sh --update
    Then edit /opt/phantomd/config/phantomd.conf:
    • Remove any dns_resolver_server = ... line from [upstream].
    • Add a [bootstrap] section (example above).
    • If using multi‑upstream DoH, add path = /your/path under each [upstreams.<name>].
  • Fresh install:
    ./installer.sh – the installer will create a default phantomd.conf with the new bootstrap section.
  • Restart service:
    systemctl restart phantomd

Full Changelog: v1.10.1...v1.11.0