Skip to content

Releases: jeonghanlee/con

Release list

1.1.0

Choose a tag to compare

@jeonghanlee jeonghanlee released this 05 Jul 01:13

UDS Hardening Release

Fixed

  • UDS: a colon-bearing target path now routes as a UNIX socket, not TCP (#4).
  • UDS: a sun_path over 108 bytes is rejected instead of silently truncated (#5).
  • UDS: servlen standardized on SUN_LEN (#6).
  • CLI: an -x exit 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

Choose a tag to compare

@jeonghanlee jeonghanlee released this 10 Apr 06:36

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/-Y modes use single buffered write per read cycle instead of per-byte syscalls
  • VLA in write_log(): Replaces std::vector heap allocation with stack buffer, eliminates OOM risk under -fno-exceptions

Bug Fixes & Safety

  • FD validity guard in Tty::do_close(): Prevents isatty()/close() on invalid file descriptors
  • CWE-134 format string fix: usage() refactored to fprintf/fputs for compile-time -Wformat validation
  • Null check order in append mode: Prevents segfault when log file open fails
  • Variadic macros: PERR/RERR migrated from GNU args... to standard __VA_ARGS__
  • Buffer initialization: memset for stack-allocated name[]/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