aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/net/dnsclient_unix.go19
-rw-r--r--src/net/dnsclient_unix_test.go57
2 files changed, 2 insertions, 74 deletions
diff --git a/src/net/dnsclient_unix.go b/src/net/dnsclient_unix.go
index fae78ae1b1..21aa91f665 100644
--- a/src/net/dnsclient_unix.go
+++ b/src/net/dnsclient_unix.go
@@ -30,10 +30,6 @@ const (
// to be used as a useTCP parameter to exchange
useTCPOnly = true
useUDPOrTCP = false
-
- // Requested DNS packet size.
- // Value taken from https://dnsflagday.net/2020/.
- maxDNSPacketSize = 1232
)
var (
@@ -60,19 +56,6 @@ func newRequest(q dnsmessage.Question) (id uint16, udpReq, tcpReq []byte, err er
if err := b.Question(q); err != nil {
return 0, nil, nil, err
}
-
- // Accept packets up to maxDNSPacketSize. RFC 6891.
- if err := b.StartAdditionals(); err != nil {
- return 0, nil, nil, err
- }
- var rh dnsmessage.ResourceHeader
- if err := rh.SetEDNS0(maxDNSPacketSize, dnsmessage.RCodeSuccess, false); err != nil {
- return 0, nil, nil, err
- }
- if err := b.OPTResource(rh, dnsmessage.OPTResource{}); err != nil {
- return 0, nil, nil, err
- }
-
tcpReq, err = b.Finish()
udpReq = tcpReq[2:]
l := len(tcpReq) - 2
@@ -99,7 +82,7 @@ func dnsPacketRoundTrip(c Conn, id uint16, query dnsmessage.Question, b []byte)
return dnsmessage.Parser{}, dnsmessage.Header{}, err
}
- b = make([]byte, maxDNSPacketSize)
+ b = make([]byte, 512) // see RFC 1035
for {
n, err := c.Read(b)
if err != nil {
diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go
index e5f01dba2a..14366eca8c 100644
--- a/src/net/dnsclient_unix_test.go
+++ b/src/net/dnsclient_unix_test.go
@@ -881,7 +881,7 @@ func (f *fakeDNSPacketConn) Close() error {
func TestIgnoreDNSForgeries(t *testing.T) {
c, s := Pipe()
go func() {
- b := make([]byte, maxDNSPacketSize)
+ b := make([]byte, 512)
n, err := s.Read(b)
if err != nil {
t.Error(err)
@@ -2161,58 +2161,3 @@ func TestRootNS(t *testing.T) {
t.Errorf("records = [%v]; want [%v]", strings.Join(records, " "), want[0])
}
}
-
-// Test that we advertise support for a larger DNS packet size.
-// This isn't a great test as it just tests the dnsmessage package
-// against itself.
-func TestDNSPacketSize(t *testing.T) {
- fake := fakeDNSServer{
- rh: func(_, _ string, q dnsmessage.Message, _ time.Time) (dnsmessage.Message, error) {
- if len(q.Additionals) == 0 {
- t.Error("missing EDNS record")
- } else if opt, ok := q.Additionals[0].Body.(*dnsmessage.OPTResource); !ok {
- t.Errorf("additional record type %T, expected OPTResource", q.Additionals[0])
- } else if len(opt.Options) != 0 {
- t.Errorf("found %d Options, expected none", len(opt.Options))
- } else {
- got := int(q.Additionals[0].Header.Class)
- t.Logf("EDNS packet size == %d", got)
- if got != maxDNSPacketSize {
- t.Errorf("EDNS packet size == %d, want %d", got, maxDNSPacketSize)
- }
- }
-
- // Hand back a dummy answer to verify that
- // LookupIPAddr completes.
- r := dnsmessage.Message{
- Header: dnsmessage.Header{
- ID: q.Header.ID,
- Response: true,
- RCode: dnsmessage.RCodeSuccess,
- },
- Questions: q.Questions,
- }
- if q.Questions[0].Type == dnsmessage.TypeA {
- r.Answers = []dnsmessage.Resource{
- {
- Header: dnsmessage.ResourceHeader{
- Name: q.Questions[0].Name,
- Type: dnsmessage.TypeA,
- Class: dnsmessage.ClassINET,
- Length: 4,
- },
- Body: &dnsmessage.AResource{
- A: TestAddr,
- },
- },
- }
- }
- return r, nil
- },
- }
-
- r := &Resolver{PreferGo: true, Dial: fake.DialContext}
- if _, err := r.LookupIPAddr(context.Background(), "go.dev"); err != nil {
- t.Errorf("lookup failed: %v", err)
- }
-}