Releases: jeonghanlee/con
Releases · jeonghanlee/con
Release list
1.1.0
UDS Hardening Release
Fixed
- UDS: a colon-bearing target path now routes as a UNIX socket, not TCP (#4).
- UDS: a
sun_pathover 108 bytes is rejected instead of silently truncated (#5). - UDS:
servlenstandardized onSUN_LEN(#6). - CLI: an
-xexit key whose finalized byte collides with the Ctrl-T diagnostic is rejected at parse time (#7).
Added
- Automated Ctrl-T diagnostic coverage, pause and resume, under the PTY test harness (#24, #26).
- Multi-client UDS test suite and a forking echo-server test helper (#28).
- Five-step release gate with real-environment downstream integration on the epics-ioc-runner goldens (#27), a standing version-independent gate reference (
docs/release-gate.md), and pinned gate dependencies with a verified advancement procedure.
Full Changelog: 1.0.0...1.1.0
con 1.0.0
con v1.0.0
Console utility for serial devices, TCP sockets, and UNIX domain sockets. Optimized for EPICS IOC console access via procServ.
New Features
- Read-only mode (
-r): Observe IOC console without sending input, prevents command interleaving on shared procServ sessions - Diagnostic hotkey (
Ctrl-T): Pause data flow and display receive buffer utilization with NORMAL/HIGH/CRITICAL status levels - Version flag (
-V,--version): Display version, git hash, and build date
Performance
select()→poll(): Removes FD_SETSIZE limitation, enables instant peer disconnect detection via POLLRDHUP, EINTR retry on all poll paths- Batch hexa output:
-X/-Ymodes use single buffered write per read cycle instead of per-byte syscalls - VLA in
write_log(): Replacesstd::vectorheap allocation with stack buffer, eliminates OOM risk under-fno-exceptions
Bug Fixes & Safety
- FD validity guard in
Tty::do_close(): Preventsisatty()/close()on invalid file descriptors - CWE-134 format string fix:
usage()refactored tofprintf/fputsfor compile-time-Wformatvalidation - Null check order in append mode: Prevents segfault when log file open fails
- Variadic macros:
PERR/RERRmigrated from GNUargs...to standard__VA_ARGS__ - Buffer initialization:
memsetfor stack-allocatedname[]/addr[]arrays in server accept paths
Testing
- Automated test suite (
make test): error handling, UDS connect/echo/exit/readonly, log output, color filter, hexa output, throughput, peer disconnect - Manual diagnostic hotkey test with echo and flood modes
Documentation
- Full CLI reference for UDS client workflows in README.md
- Ctrl-T diagnostic levels and recommended operator actions