1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

resolved: update condition for caching full packets

Previously a full packet was cached only if the CD bit was set, but this
no longer corresponds to the cases where bypass is enabled.

Update the cache to retain a full packet in the cases where it might
actually be useful.
This commit is contained in:
Ronan Pigott 2024-10-12 10:00:56 -07:00
parent 36074e0149
commit fa02d04ee9

View File

@ -840,10 +840,8 @@ static void dns_transaction_cache_answer(DnsTransaction *t) {
dns_transaction_key(t),
t->answer_rcode,
t->answer,
DNS_PACKET_CD(t->received) ? t->received : NULL, /* only cache full packets with CD on,
* since our use case for caching them
* is "bypass" mode which is only
* enabled for CD packets. */
/* If neither DO nor EDE is set, the full packet isn't useful to cache */
DNS_PACKET_DO(t->received) || t->answer_ede_rcode > 0 || t->answer_ede_msg ? t->received : NULL,
t->answer_query_flags,
t->answer_dnssec_result,
t->answer_nsec_ttl,