aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/go/_std_1.22/src/net/dnsclient_unix.go
diff options
context:
space:
mode:
authorpsydvl <psydvl@yandex-team.com>2024-07-10 11:16:37 +0300
committerpsydvl <psydvl@yandex-team.com>2024-07-10 11:30:40 +0300
commit0281735672968c8e84def9279d2845af99cc2c44 (patch)
tree7e8fd347182958bf933e62447be05ed68377cbee /contrib/go/_std_1.22/src/net/dnsclient_unix.go
parent02dce8fb96150aa1b41f0ead67e108999556a4a8 (diff)
downloadydb-0281735672968c8e84def9279d2845af99cc2c44.tar.gz
go: 1.22.1 -> 1.22.5
update fetch script toolchain binaries update fix instruction go library update codenv toolchain update pin 24c4d077a2fb5f87554c06c17f0a8f0947e710a2
Diffstat (limited to 'contrib/go/_std_1.22/src/net/dnsclient_unix.go')
-rw-r--r--contrib/go/_std_1.22/src/net/dnsclient_unix.go32
1 files changed, 21 insertions, 11 deletions
diff --git a/contrib/go/_std_1.22/src/net/dnsclient_unix.go b/contrib/go/_std_1.22/src/net/dnsclient_unix.go
index c291d5eb4f..8821641a01 100644
--- a/contrib/go/_std_1.22/src/net/dnsclient_unix.go
+++ b/contrib/go/_std_1.22/src/net/dnsclient_unix.go
@@ -16,6 +16,7 @@ import (
"context"
"errors"
"internal/bytealg"
+ "internal/godebug"
"internal/itoa"
"io"
"os"
@@ -51,6 +52,9 @@ var (
errServerTemporarilyMisbehaving = errors.New("server misbehaving")
)
+// netedns0 controls whether we send an EDNS0 additional header.
+var netedns0 = godebug.New("netedns0")
+
func newRequest(q dnsmessage.Question, ad bool) (id uint16, udpReq, tcpReq []byte, err error) {
id = uint16(randInt())
b := dnsmessage.NewBuilder(make([]byte, 2, 514), dnsmessage.Header{ID: id, RecursionDesired: true, AuthenticData: ad})
@@ -61,16 +65,20 @@ func newRequest(q dnsmessage.Question, ad bool) (id uint16, udpReq, tcpReq []byt
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
+ if netedns0.Value() == "0" {
+ netedns0.IncNonDefault()
+ } else {
+ // 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()
@@ -267,7 +275,9 @@ func extractExtendedRCode(p dnsmessage.Parser, hdr dnsmessage.Header) dnsmessage
if ahdr.Type == dnsmessage.TypeOPT {
return ahdr.ExtendedRCode(hdr.RCode)
}
- p.SkipAdditional()
+ if err := p.SkipAdditional(); err != nil {
+ return hdr.RCode
+ }
}
}