Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZoneUpdater doesn't handle "special" RR updates correctly. #404

Open
ximon18 opened this issue Oct 7, 2024 · 0 comments
Open

ZoneUpdater doesn't handle "special" RR updates correctly. #404

ximon18 opened this issue Oct 7, 2024 · 0 comments
Labels
bug Something isn't working unstable feature

Comments

@ximon18
Copy link
Member

ximon18 commented Oct 7, 2024

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 given ZoneUpdate as produced by XfrZoneInterpreter. However, while this will faithfully create both good and bad records in the tree, it will not create "special" records correctly thereby preventing query() (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 appropriate make_xxx() methods on the WritableZoneNode interface instead of using update_rrset() for everything.

@ximon18 ximon18 added bug Something isn't working unstable feature labels Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working unstable feature
Projects
None yet
Development

No branches or pull requests

1 participant