resolve: transaction - stop processing packet when found to be invalid
We were stopping the transaction, but we need to stop processing the packet alltogether.
This commit is contained in:
parent
0e03ade57e
commit
6709eb94f9
|
@ -417,8 +417,10 @@ void dns_transaction_process_reply(DnsTransaction *t, DnsPacket *p) {
|
||||||
|
|
||||||
/* Only consider responses with equivalent query section to the request */
|
/* Only consider responses with equivalent query section to the request */
|
||||||
if (!dns_question_is_superset(p->question, t->question) ||
|
if (!dns_question_is_superset(p->question, t->question) ||
|
||||||
!dns_question_is_superset(t->question, p->question))
|
!dns_question_is_superset(t->question, p->question)) {
|
||||||
dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
|
dns_transaction_complete(t, DNS_TRANSACTION_INVALID_REPLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* According to RFC 4795, section 2.9. only the RRs from the answer section shall be cached */
|
/* According to RFC 4795, section 2.9. only the RRs from the answer section shall be cached */
|
||||||
dns_cache_put(&t->scope->cache, p->question, DNS_PACKET_RCODE(p), p->answer, DNS_PACKET_ANCOUNT(p), 0, p->family, &p->sender);
|
dns_cache_put(&t->scope->cache, p->question, DNS_PACKET_RCODE(p), p->answer, DNS_PACKET_ANCOUNT(p), 0, p->family, &p->sender);
|
||||||
|
|
Loading…
Reference in a new issue