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

dnsdist: Make DNSDist XFR aware when transfer is finished #10489

Merged
merged 7 commits into from Jun 25, 2021

Conversation

slowr
Copy link
Contributor

@slowr slowr commented Jun 9, 2021

Short description

Added logic to parse SOA records for XFR transfers and figure out if the XFR transfer is finished.

Resolves #10436

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

@rgacogne
Copy link
Member

I'm trying to reproduce the test failures locally, no luck so far.

Since we now detect the end of a XFR and reset the is_XFR flag, we
can't rely on it anymore to skip the insertion of the response into
the ring buffer. Set the type of these responses to AXFR and use that
instead.
A better fix would be to make the IDState available even for XFR
responses, at the cost of doing a copy, and perhaps insert an entry
into the ring buffer for the last message.
@rgacogne
Copy link
Member

I managed to reproduce it with clang's UBSAN, and pushed a fix.

@rgacogne rgacogne self-requested a review June 11, 2021 13:05
@rgacogne
Copy link
Member

I pushed regression tests, and I'm working on adding unit tests as well.

@rgacogne rgacogne requested a review from omoerbeek June 16, 2021 07:54
@rgacogne rgacogne merged commit db3a361 into PowerDNS:master Jun 25, 2021
@slowr slowr deleted the ixfr-axfr-aware branch June 26, 2021 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

dnsdist: Make DNSDist XFR aware when transfer is finished
2 participants