Skip to content

v0.11.5: IPv6 DNS Transport Support

Choose a tag to compare

@dweekly dweekly released this 10 Feb 23:13
· 209 commits to main since this release

IPv6 DNS Transport Support

DNS queries now work with IPv6 DNS servers, including link-local addresses with scope IDs (e.g. fe80::1%en0). This enables SwiftFTR on IPv6-only/NAT64 networks like iPhone tethering.

New

  • Dual-stack DNS transport — performDNSQueryInternal() and DNSClient.queryTXTOnce() detect server address family and create correct socket type
  • reverseIPv6() — PTR lookup via ip6.arpa (on DNSQueries and as standalone free function)
  • _formatReverseDNS() — now handles IPv6 (expands via inet_pton, reverses nibbles)
  • reverseDNS() — now resolves both IPv4 and IPv6 addresses via getnameinfo
  • detectAddressFamily() / parseIPv6Scoped() — internal utilities for address parsing

Link-local support

  • Servers like fe80::28d5:b1ff:fe4d:3564%en0 fully supported with sin6_scope_id
  • Uses IPV6_BOUND_IF / IPPROTO_IPV6 for IPv6 interface binding
  • Source IP binding validates that source and server address families match

Testing

  • 4 new offline unit tests (IPv6 reverse DNS formatting, address family detection, scoped parsing)
  • Live-verified all query types (A, AAAA, TXT, PTR, PTR6, NS) through iPhone tethered link-local DNS

Full Changelog: v0.11.4...v0.11.5

Full Changelog: v0.11.4...v0.11.5