Files
coredns/plugin/pkg/dnsutil/message.go

25 lines
565 B
Go
Raw Normal View History

package dnsutil
import (
"encoding/binary"
"errors"
"github.com/miekg/dns"
)
var errRequestRejected = errors.New("dns request rejected")
// UnpackRequest unpacks a request after applying the default miekg/dns request policy.
func UnpackRequest(msg []byte) (*dns.Msg, error) {
var header dns.Header
if _, err := binary.Decode(msg, binary.BigEndian, &header); err != nil {
return nil, dns.ErrBuf
}
if dns.DefaultMsgAcceptFunc(header) != dns.MsgAccept {
return nil, errRequestRejected
}
request := new(dns.Msg)
return request, request.Unpack(msg)
}