mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-12 13:43:05 -04:00
Because dns_resolver_createfetch() locks the view, it was necessary to unlock the zone in zone_refreshkeys() before calling it in order to maintain the lock order, and relock afterward. this permitted a race with dns_zone_synckeyzone(). This commit moves the call to dns_resolver_createfetch() into a separate function which is called asynchronously after the zone has been unlocked. The keyfetch object now attaches to the zone to ensure that it won't be shut down before the asynchronous call completes. This necessitated refactoring dns_zone_detach() so it always runs unlocked. For managed zones it now schedules zone_shutdown() to run asynchronously, and for unmanaged zones, it requires the last dns_zone_detach() to be run without loopmgr running. |
||
|---|---|---|
| .. | ||
| bench | ||
| dns | ||
| include/tests | ||
| irs | ||
| isc | ||
| isccfg | ||
| libtest | ||
| ns | ||
| .gitignore | ||
| Makefile.am | ||
| unit-test-driver.sh.in | ||