Repository navigation
Releases: sv222/portpin
Releases · sv222/portpin
Release list
v0.1.2
Worth upgrading if you use --protocol udp or the JSON output: both reported
the same process once per socket.
Changed
- The human table prints rows that would look identical once, and a new
SOCKETScolumn counts how many sockets stand behind each one. A process
can legitimately hold several distinct sockets on one endpoint - the
SO_REUSEADDRmDNS listeners that open one socket per interface are the
common case - and the table's columns cannot tell those sockets apart, so
portpin --protocol udp 5353used to repeat the same row many times. The
JSONbindingsarray is unaffected and still lists every socket. - The JSON
actionsarray now carries one entry per process rather than one
per socket. The kernel socket tables list a row per socket, so a process
holding severalSO_REUSEADDRsockets on one endpoint - the usual shape of
mDNS onudp/5353- was reported once per socket:
portpin --dry-run --protocol udp 5353 --jsonemitted 20 actions for 3
processes, each with the same PID and the same outcome.bindingsis
unchanged and still lists every socket.
Fixed
- The confirmation prompt counted sockets instead of processes, asking
"terminate 20 process(es)?" when only 3 processes held those sockets. - portpin no longer prompts for confirmation when a single process holds
more than one socket on the target endpoint. There is still only one
process to stop, so the multiple-owner prompt did not apply.
Full changelog: v0.1.1...v0.1.2
v0.1.1
The binary is unchanged: this release is documentation and build plumbing only.
If v0.1.0 works for you, there is no fix here to upgrade for.
Added
- README: a "Common cases" table keyed by the error text you actually get -
EADDRINUSE: address already in use,[Errno 98] Address already in use,
bind: address already in use, Windows'Only one usage of each socket address is normally permitted, and Docker'sport is already allocated. - README: equivalents for
netstat/taskkill,lsof | xargs kill -9,
fuser -k,ss -ltnp,Get-NetTCPConnectionandnpx kill-port. - README: an FAQ entry for Docker's
port is already allocated, describing the
container-proxy advisory and whydocker stopis the right answer. - README: an FAQ entry on the Windows Defender false positive, including how to
verify a download against thechecksums.txtpublished below. - README: usage examples for UDP and for ports other than 8080.
Changed
- The pinned GitHub Actions moved off the deprecated Node.js 20 runtime.
Full changelog: v0.1.0...v0.1.1
v0.1.0
Changelog
- 57972fb ci: fix release go version and add least-privilege hardening
- d675897 ci: pin golangci-lint to v2.13.2 to match go 1.25 and config v2
- 33c434f ci: pin third-party actions to commit SHA
- cfd8c62 ci: test matrix, goreleaser config, and README
- 9bd1513 ci: upgrade golangci-lint-action to v7 (v6 rejects golangci-lint v2)
- c51be7e debug: remove temporary PORTPIN_DEBUG_DISCOVER instrumentation
- 218e3f8 debug: temporary PORTPIN_DEBUG_DISCOVER instrumentation for the race test
- 542e5c2 feat(advise): container-proxy advisory from cmdline only
- 38f0f60 feat(cli): flags, target parsing, orchestration and exit codes
- 79469c7 feat(discover): linux resolver mapping socket inodes to processes
- dcb4c6b feat(discover): pure /proc/net socket table parser
- 591e94a feat(discover): pure IPHlpAPI extended-table decoder
- fad18eb feat(discover): windows resolver over IPHlpAPI extended tables
- ac17542 feat(model): core domain types for sockets and processes
- c478bfd feat(model): endpoint filter with dual-stack wildcard rules
- e634a76 feat(pin): controller interface, sentinel errors, scripted fake
- 34bb7bd feat(pin): linux pidfd controller with starttime sandwich check
- 76f062b feat(pin): windows handle controller with console-break graceful stop
- 560814a feat(render): human table and stable JSON report
- 398b001 feat(terminate): syscall-free escalation state machine
- 90171c3 fix(discover): don't report a raced-away socket as permission denied
- d366cde fix(discover): prefer exact-address match over wildcard listener
- 8457f9f fix(discover): retry the owner scan before reporting permission denied
- ae300e8 fix(pin): claim CTRL_BREAK and survive async console dispatch
- 5daedb3 fix: address final review findings across cli, discover and pin
- 478650a fix: check errors from Close on linux-only files
- 20356c7 fix: check errors from Close/CloseHandle in defer