-
Notifications
You must be signed in to change notification settings - Fork 3.2k
fix: Enable the ping ban function to be compatible with some IPv6 mac… #8285
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
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code contains multiple improvements to enhance readability, clarity, and maintainability:
Improved Error Handling: The
fmt.Sprintffunction is used instead of concatenation within theExecmethod to improve readability.Optimized Check for IPv6 Status: A single syscall using
sysctlcommand is executed once to determine if either IPv4 or IPv6 should be enabled, reducing redundant calls.Enhanced Line Processing Logic: Lines containing both IPv4 and IPv6 checks are consolidated into a single logic block to simplify the code flow.
Here's a slightly refactored version with comments explaining some of the changes:
Summary of Changes:
Used
os.Exec()for commands where necessary, avoiding shell injection risks.Combined conditional checks for adding entries related to ICMP v4 and v6 into one loop, maintaining clean and consistent code.
Simplified condition evaluation in the
updatePingStatusfunction by reusing variables (hasIcmpIPv4Line,hasIcmpIPv6Line) across iterations.Improved the structure by splitting large functions into smaller ones that perform more focused tasks, making it easier to review individual components.
These enhancements make the code cleaner, more efficient, and less error-prone, adhering to best practices in Go programming.