Skip to content

Refactor dns_rpz unit to use single reference counting

Ondřej Surý requested to merge ondrej-eliminitate-rpzs-irefs into main

The dns_rpz_zones structure was using .refs and .irefs for strong and weak reference counting. Rewrite the unit to use just a single reference counting + shutdown sequence (dns_rpz_destroy_rpzs) that must be called by the creator of the dns_rpz_zones_t object. Remove the reference counting from the dns_rpz_zone structure as it is not needed because the zone objects are fully embedded into the dns_rpz_zones structure and dns_rpz_zones_t object must never be destroyed before all dns_rpz_zone_t objects.

The dns_rps_zones_t reference counting uses the new ISC_REFCOUNT_TRACE capability - enable by defining DNS_RPZ_TRACE in the dns/rpz.h header.

Additionally, add magic numbers to the dns_rpz_zone and dns_rpz_zones structures.

Edited by Ondřej Surý

Merge request reports