diff options
Diffstat (limited to 'middleware/pkg/edns/edns.go')
-rw-r--r-- | middleware/pkg/edns/edns.go | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/middleware/pkg/edns/edns.go b/middleware/pkg/edns/edns.go deleted file mode 100644 index 6cbe2cdae..000000000 --- a/middleware/pkg/edns/edns.go +++ /dev/null @@ -1,46 +0,0 @@ -// Package edns provides function useful for adding/inspecting OPT records to/in messages. -package edns - -import ( - "errors" - - "github.com/miekg/dns" -) - -// Version checks the EDNS version in the request. If error -// is nil everything is OK and we can invoke the middleware. If non-nil, the -// returned Msg is valid to be returned to the client (and should). For some -// reason this response should not contain a question RR in the question section. -func Version(req *dns.Msg) (*dns.Msg, error) { - opt := req.IsEdns0() - if opt == nil { - return nil, nil - } - if opt.Version() == 0 { - return nil, nil - } - m := new(dns.Msg) - m.SetReply(req) - // zero out question section, wtf. - m.Question = nil - - o := new(dns.OPT) - o.Hdr.Name = "." - o.Hdr.Rrtype = dns.TypeOPT - o.SetVersion(0) - o.SetExtendedRcode(dns.RcodeBadVers) - m.Extra = []dns.RR{o} - - return m, errors.New("EDNS0 BADVERS") -} - -// Size returns a normalized size based on proto. -func Size(proto string, size int) int { - if proto == "tcp" { - return dns.MaxMsgSize - } - if size < dns.MinMsgSize { - return dns.MinMsgSize - } - return size -} |