]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
chg: dev: resolver: refactoring of the dns_fetchresponse_t handling
authorColin Vidal <colin@isc.org>
Tue, 10 Feb 2026 08:25:09 +0000 (09:25 +0100)
committerColin Vidal <colin@isc.org>
Tue, 10 Feb 2026 08:25:09 +0000 (09:25 +0100)
Instead of cloning fetch responses immediately after inserting them at the head of the `fetch_response` list, defer cloning until the events are actually sent.

This enables to:
- Remove the `fctx->cloned` state;
- Simplify the code by eliminating explicit calls to `clone_result()`;
- Remove the logic that enforced having a fetch response with a `sigrdataset` at the head of the list;
- Remove (just a bit of) locking in some places.

The fetch result is stored directly in new `fctx` properties, but there is no memory increase as those are grouped in an anonymous struct used in a union besides another (bigger) anonymous struct wrapping properties used by qmin fetch only (and, in the case of qmin fetch, those fetch result properties are not needed).

Merge branch 'colin/resolver-cloneresults' into 'main'

See merge request isc-projects/bind9!11458


Trivial merge