mirror of
https://github.com/systemd/systemd.git
synced 2025-03-08 08:58:27 +03:00
resolve: mark mDNS RRs in the Additional Records section as cacheable
RFC 6762 does not restrict caching of records in the Additional section. Caching can improve resolve efficiency.
This commit is contained in:
parent
172cbcdc8b
commit
82af03c223
@ -2343,13 +2343,17 @@ static int dns_packet_extract_answer(DnsPacket *p, DnsAnswer **ret_answer) {
|
||||
|
||||
/* According to RFC 4795, section 2.9. only the RRs from the Answer section shall be
|
||||
* cached. Hence mark only those RRs as cacheable by default, but not the ones from
|
||||
* the Additional or Authority sections. */
|
||||
* the Additional or Authority sections.
|
||||
* This restriction does not apply to mDNS records (RFC 6762). */
|
||||
if (i < DNS_PACKET_ANCOUNT(p))
|
||||
flags |= DNS_ANSWER_CACHEABLE|DNS_ANSWER_SECTION_ANSWER;
|
||||
else if (i < DNS_PACKET_ANCOUNT(p) + DNS_PACKET_NSCOUNT(p))
|
||||
flags |= DNS_ANSWER_SECTION_AUTHORITY;
|
||||
else
|
||||
else {
|
||||
flags |= DNS_ANSWER_SECTION_ADDITIONAL;
|
||||
if (p->protocol == DNS_PROTOCOL_MDNS)
|
||||
flags |= DNS_ANSWER_CACHEABLE;
|
||||
}
|
||||
|
||||
r = dns_answer_add(answer, rr, p->ifindex, flags, NULL);
|
||||
if (r < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user