feat: avoid decoding known answers if we have no answers to give#1308
Merged
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Inspired by #1307
In most cases were won't be able to answer the questions because we don't have an answer in the ServiceRegistry for the question since we only know how to answer for entries we have. In this case we can avoid building a set of answers and parsing the known answers in the incoming packet in the majority of cases.
This is a significant speed up since parsing incoming packets is the most expensive thing zeroconf does.
The downside is we might ask a question in the ServiceBrowser that was just asked by another host with the exact same known answer list but this is unlikely as its usually multiple ServiceBrowsers running in the same instance that would do that. We really need to solve #1171 though as thats where the really traffic reduction opportunity is.