All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project aims to follow Semantic Versioning.
- Added
mc_free_buffer()andmc_free_string()as public helper APIs for releasing heap memory returned by string-oriented read APIs. - Added GitHub Actions CI workflow for Linux Make builds on push and pull request.
- Updated public headers, README files, and protocol manual to document ownership rules for
mc_read_string,mc_ascii_read_string,mc_read_plc_type, andmc_ascii_read_plc_type. - Updated example usage in
main.cand documentation to prefermc_free_string()over directfree()for library-returned strings. - Updated Make include path configuration to reference the actual source include directory.
- Removed nested locking between transaction-scoped request serialization and socket send/receive wrappers by introducing unlocked internal transport helpers.
- Hardened PLC address parsing so malformed device strings fail fast instead of silently resolving to address zero.
- Aligned binary
mc_read_string()behavior with the documented contract by null-initializing the output pointer and returning a NUL-terminated heap string.