diff --git a/doh-client/ietf.go b/doh-client/ietf.go index 6ba7a1a..bc4e625 100644 --- a/doh-client/ietf.go +++ b/doh-client/ietf.go @@ -75,7 +75,7 @@ func (c *Client) generateRequestIETF(w dns.ResponseWriter, r *dns.Msg, isTCP boo opt.Hdr.Rrtype = dns.TypeOPT opt.SetUDPSize(dns.DefaultMsgSize) opt.SetDo(false) - r.Extra = append(r.Extra, opt) + r.Extra = append([]dns.RR{opt}, r.Extra...) } else { udpSize = opt.UDPSize() } diff --git a/doh-server/ietf.go b/doh-server/ietf.go index 60b43e4..869e5cb 100644 --- a/doh-server/ietf.go +++ b/doh-server/ietf.go @@ -95,7 +95,7 @@ func (s *Server) parseRequestIETF(w http.ResponseWriter, r *http.Request) *DNSRe opt.Hdr.Rrtype = dns.TypeOPT opt.SetUDPSize(dns.DefaultMsgSize) opt.SetDo(false) - msg.Extra = append(msg.Extra, opt) + msg.Extra = append([]dns.RR{opt}, msg.Extra...) } var edns0Subnet *dns.EDNS0_SUBNET for _, option := range opt.Option {