2018-01-10 02:52:09 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/miekg/dns"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TruncatedResponse(packet []byte) ([]byte, error) {
|
|
|
|
srcMsg := new(dns.Msg)
|
|
|
|
if err := srcMsg.Unpack(packet); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
dstMsg := srcMsg
|
|
|
|
dstMsg.Response = true
|
|
|
|
dstMsg.Answer = make([]dns.RR, 0)
|
|
|
|
dstMsg.Ns = make([]dns.RR, 0)
|
|
|
|
dstMsg.Extra = make([]dns.RR, 0)
|
|
|
|
dstMsg.Truncated = true
|
|
|
|
return dstMsg.Pack()
|
|
|
|
}
|
|
|
|
|
2018-01-10 17:23:20 +01:00
|
|
|
func EmptyResponseFromMessage(srcMsg *dns.Msg) (*dns.Msg, error) {
|
|
|
|
dstMsg := srcMsg
|
|
|
|
dstMsg.Response = true
|
|
|
|
dstMsg.Answer = make([]dns.RR, 0)
|
|
|
|
dstMsg.Ns = make([]dns.RR, 0)
|
|
|
|
dstMsg.Extra = make([]dns.RR, 0)
|
|
|
|
return dstMsg, nil
|
|
|
|
}
|
|
|
|
|
2018-01-10 02:52:09 +01:00
|
|
|
func HasTCFlag(packet []byte) bool {
|
|
|
|
return packet[2]&2 == 2
|
|
|
|
}
|