inbound_test.go 884 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package adapter
  2. import (
  3. "net"
  4. "net/netip"
  5. "testing"
  6. "github.com/miekg/dns"
  7. "github.com/stretchr/testify/require"
  8. )
  9. func TestDNSResponseAddressesUnmapsHTTPSIPv4Hints(t *testing.T) {
  10. t.Parallel()
  11. ipv4Hint := net.ParseIP("1.1.1.1")
  12. require.NotNil(t, ipv4Hint)
  13. response := &dns.Msg{
  14. MsgHdr: dns.MsgHdr{
  15. Response: true,
  16. Rcode: dns.RcodeSuccess,
  17. },
  18. Answer: []dns.RR{
  19. &dns.HTTPS{
  20. SVCB: dns.SVCB{
  21. Hdr: dns.RR_Header{
  22. Name: dns.Fqdn("example.com"),
  23. Rrtype: dns.TypeHTTPS,
  24. Class: dns.ClassINET,
  25. Ttl: 60,
  26. },
  27. Priority: 1,
  28. Target: ".",
  29. Value: []dns.SVCBKeyValue{
  30. &dns.SVCBIPv4Hint{Hint: []net.IP{ipv4Hint}},
  31. },
  32. },
  33. },
  34. },
  35. }
  36. addresses := DNSResponseAddresses(response)
  37. require.Equal(t, []netip.Addr{netip.MustParseAddr("1.1.1.1")}, addresses)
  38. require.True(t, addresses[0].Is4())
  39. }