diff options
author | psydvl <psydvl@yandex-team.com> | 2024-07-10 11:16:37 +0300 |
---|---|---|
committer | psydvl <psydvl@yandex-team.com> | 2024-07-10 11:30:40 +0300 |
commit | 0281735672968c8e84def9279d2845af99cc2c44 (patch) | |
tree | 7e8fd347182958bf933e62447be05ed68377cbee /contrib/go/_std_1.22/src/net/dnsclient_unix.go | |
parent | 02dce8fb96150aa1b41f0ead67e108999556a4a8 (diff) | |
download | ydb-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.go | 32 |
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 + } } } |