fix: infinite packet processing loop breaking on errors/duplicates#7
Open
KimNorgaard wants to merge 1 commit into
Open
fix: infinite packet processing loop breaking on errors/duplicates#7KimNorgaard wants to merge 1 commit into
KimNorgaard wants to merge 1 commit into
Conversation
The DHCP packet receiver and processor loop in main.go improperly used `break` statements. Because there are no nested/inner for loops or switch statements around them, these `break`s would completely exit the main packet processing loop. When this occurred: - A duplicate request arrived, - A non-request packet without an existing context was parsed, - Address resolution failed, or - Sending a response packet to a client encountered a network write error, the server would exit the loop, terminate processing of all future DHCP packets, and exit. This commit replaces all incorrect `break` statements in the packet processing loop with `continue`, ensuring that the server skips the problematic packet/operation and continues processing subsequent packets.
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.
The DHCP packet receiver and processor loop in main.go improperly used
breakstatements. Because there are no nested/inner for loops or switch statements around them, thesebreaks would completely exit the main packet processing loop.When this occurred:
the server would exit the loop, terminate processing of all future DHCP packets, and exit.
This commit replaces all incorrect
breakstatements in the packet processing loop withcontinue, ensuring that the server skips the problematic packet/operation and continues processing subsequent packets.