diff --git a/dns/transport/predefined.go b/dns/transport/predefined.go index 3e52a595..dbb78e5c 100644 --- a/dns/transport/predefined.go +++ b/dns/transport/predefined.go @@ -74,6 +74,7 @@ func (t *PredefinedTransport) Exchange(ctx context.Context, message *mDNS.Msg) ( }() { copyAnswer := *response.answer copyAnswer.Id = message.Id + copyAnswer.Question = message.Question return ©Answer, nil } } diff --git a/option/dns_record.go b/option/dns_record.go index 190f5483..c76a76c6 100644 --- a/option/dns_record.go +++ b/option/dns_record.go @@ -95,8 +95,11 @@ func (o DNSResponseOptions) Build() ([]dns.Question, *dns.Msg, error) { } return questions, &dns.Msg{ MsgHdr: dns.MsgHdr{ - Response: true, - Rcode: o.RCode.Build(), + Response: true, + Rcode: o.RCode.Build(), + Authoritative: true, + RecursionDesired: true, + RecursionAvailable: true, }, Answer: common.Map(o.Answer, DNSRecordOptions.build), Ns: common.Map(o.Ns, DNSRecordOptions.build),