mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-25 10:52:13 -04:00
Previously, when a negative header was stored in the cache, it would be stored in the dns_typepair_t as .type = 0, .covers = <negative type>. When searching the cache internally, we would have to look for both positive and negative typepair and the slabheader .down list could be a mix of positive and negative types. Remove the extra representation of the negative type and simply use the negative attribute on the slabheader. Other units (namely dns_ncache) can still insert the (0, type) negative rdatasets into the cache, but internally, those will be converted into (type, 0) slabheaders, and vice versa - when binding the rdatasets, the negative (type, 0) slabheader will be converted to (0, type) rdataset. Simple DNS_TYPEPAIR() helper macro was added to simplify converting single rdatatype to typepair value. As a side-effect, the search logic in all places can exit early if there's a negative header for the type we are looking for, f.e. when searching for the zone cut, we don't have to walk through all the slabheaders, if there's a stored negative slabheader. |
||
|---|---|---|
| .. | ||
| dns | ||
| isc | ||
| isccc | ||
| isccfg | ||
| ns | ||
| .gitignore | ||
| meson.build | ||