]> git.ipfire.org Git - thirdparty/bind9.git/commit
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)
commita36853d7fda07dbf6e924b4f1cf0bb2deed13a9d
treea52ccedebb5e7fbdc7c152e8a806e158406cbae3
parentc482a8ca4294d17038ef6eb95246ed5bc1ac9395
parente62cafd3c76a9bb6c37f796dce507dd9cb47d47f
chg: dev: resolver: refactoring of the dns_fetchresponse_t handling

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