Refactor command-line argument parsing #6
Merged
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.
Refactor command-line argument parsing
closes #5
This pull request refactors and enhances the argument parsing and execution logic for the port knocking tool in
Main.java. The changes introduce a finite state machine (FSM) for argument validation, improve input parsing, and restructure the knocking sequence to use a list of actions. Additionally, output messages are improved for clarity.Argument parsing and validation improvements:
fsm) using aSymbolenum and aMapto enforce valid argument sequences and transitions. [1] [2] [3]parseDelayandparsePortto validate and parse delay and port arguments, ensuring values are within acceptable ranges.Knocking sequence execution changes:
Runnableactions, allowing flexible sequencing of UDP/TCP knocks and delays, and removed the last delay to avoid unnecessary waiting. [1] [2]knockDelaymethod to encapsulate delay logic and handle interruptions gracefully.Output and feedback enhancements:
knockUDPandknockTCPmethods to print status messages before and after each knock, providing better user feedback. [1] [2]