qdm12 / dns

Docker DNS server on steroids to access DNS-over-TLS from Cloudflare, Google, Quad9, Quadrant or CleanBrowsing
https://hub.docker.com/r/qmcgaw/cloudflare-dns-server
MIT License
219 stars 37 forks source link

Ensure dns:v2.0.0-beta works with TCP over 53 for truncated messages #132

Open qdm12 opened 8 months ago

qdm12 commented 8 months ago

A test to do this:

package dnssec

import (
    "context"
    "net"
    "testing"

    "github.com/miekg/dns"
)

func Test(t *testing.T) {
    ctx := context.Background()
    dialer := &net.Dialer{}
    netConn, err := dialer.DialContext(ctx, "udp", "1.1.1.1:53")
    if err != nil {
        t.Error(err)
    }
    dnsConn := &dns.Conn{Conn: netConn}

    client := &dns.Client{}
    request := new(dns.Msg)
    request.SetQuestion("berkeley.edu.", dns.TypeDNSKEY)
    response, _, err := client.ExchangeWithConn(request, dnsConn)
    if err != nil {
        t.Error(err)
    }
    t.Log(response.Truncated)

    err = dnsConn.Close()
    if err != nil {
        t.Error(err)
    }
}