Refactor duplicated code patterns in NetTool #4
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.
Eliminated 100+ lines of duplicated Winsock initialization, command-line parsing, and error handling code across the NetTool directory.
Changes
Created shared utilities (
common_utils.h/cpp):WinsockInitializer- RAII class for automatic Winsock lifecycle managementgetopt()- BSD-style command-line parsingerr(),errx(),verr(),verrx()Refactored 6 files to use shared utilities:
finger.cpp- Removed ~130 lines (getopt impl, error functions, Winsock boilerplate)whois.cpp,Ping.cpp,nslookup.cpp- Replaced manual Winsock init/cleanup with RAIIsock.cpp- Applied RAII to 5 functionsFixed resource leaks:
closesocket(s6)calls in 4 functionsExample
Before:
After:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.