ZoneUpdater
doesn't handle "special" RR updates correctly.
#404
Labels
ZoneUpdater
doesn't handle "special" RR updates correctly.
#404
Currently an in-memory zone can be updated via
update_rrset()
passing a "special" RR type (a CNAME or zone cut (DS or NS)) and will blindly add these to the internal tree as "normal" nodes, but they should be added with special handling.This is by design as there needs to be a way to faithfully construct the zone that is received via XFR to match the primary, with incorrect RRs as well.
The
ZoneUpdater
was primarily added to support the XFR case and so adds and removes records to/from the zone based on what is in the givenZoneUpdate
as produced byXfrZoneInterpreter
. However, while this will faithfully create both good and bad records in the tree, it will not create "special" records correctly thereby preventingquery()
(with the in-memory zone at least, behaviour of user supplied zone backing stores is implementation dependent) calls from responding correctly.The
ZoneUpdater
should detect "special" cases and apply them via the appropriatemake_xxx()
methods on theWritableZoneNode
interface instead of usingupdate_rrset()
for everything.The text was updated successfully, but these errors were encountered: