<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkCOpcUa/src/config.c, branch master</title>
<subtitle>OPC UA applications in C</subtitle>
<id>http://git.tvcloud.fr/BobinkCOpcUa/atom/src/config.c?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/BobinkCOpcUa/atom/src/config.c?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/'/>
<updated>2026-02-18T23:01:18Z</updated>
<entry>
<title>Refactor: reduce duplication and tighten helpers</title>
<updated>2026-02-18T23:01:18Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T23:01:18Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/commit/?id=f3648fefe040152bb1676d651ebf7d836cb8ac9e'/>
<id>urn:sha1:f3648fefe040152bb1676d651ebf7d836cb8ac9e</id>
<content type='text'>
- Remove redundant applicationUri log in print_application_description
- Use UA_SECURITY_POLICY_NONE_URI macro instead of hardcoded string
- Extract _s_register_with_lds / _s_deregister_from_lds helpers
- Rename signal handler param 'sign' to 'sig' for consistency
- Add INT_MIN/INT_MAX bounds check to config_require_int
- Extract shared test helpers into tests/test_helpers.sh
</content>
</entry>
<entry>
<title>Rename all identifiers to strict Linux snake_case</title>
<updated>2026-02-18T22:23:44Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T22:23:44Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/commit/?id=3d30c8499ae37ca0ff837e9deaad359de0297765'/>
<id>urn:sha1:3d30c8499ae37ca0ff837e9deaad359de0297765</id>
<content type='text'>
Types PascalCase→snake_case, functions camelCase→snake_case,
static functions get _s_ prefix, globals get g_ prefix,
struct members and locals to snake_case.
</content>
</entry>
<entry>
<title>Fix memory leak, add volatile, reduce duplication</title>
<updated>2026-02-18T09:00:46Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-18T09:00:46Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/commit/?id=9fe3814a2ef0be8e5b693fb0fa42064b33d0ae45'/>
<id>urn:sha1:9fe3814a2ef0be8e5b693fb0fa42064b33d0ae45</id>
<content type='text'>
- config.c: free partial strdup on configAppend failure
- common.c: consolidate loadTrustStore error paths with goto
- server_lds.c, server_register.c: make running volatile, remove
  non-async-signal-safe call from signal handler
- server_register.c: extract LdsClientParams + makeLdsClientConfig
  to deduplicate the register/deregister client config setup
</content>
</entry>
<entry>
<title>Replace ClientFindServers with unified Client, use trust store directories</title>
<updated>2026-02-17T18:06:22Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-17T18:06:22Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/commit/?id=827e90e0daabe32e058e08dd2a253425898a7e7a'/>
<id>urn:sha1:827e90e0daabe32e058e08dd2a253425898a7e7a</id>
<content type='text'>
Replace the single-purpose ClientFindServers program with a unified Client
that supports three operations via CLI: find-servers, get-endpoints, and
read-time.  This simplifies the architecture by using one client binary with
a single config file instead of a monolithic program that did everything in
one run.

Split the ServerRegister config into separate server and client config files
so the LDS-registration credentials are isolated from the server's own
settings.  The discovery URL moves from config to a CLI argument.

Replace repeated trustList config entries with a single trustStore directory
path.  Each program now points to a directory under certs/trust/ containing
.der files, so adding or removing trust is a file-copy operation rather than
editing every config file.  Add loadTrustStore()/freeTrustStore() to
common.c and remove the now-unused configGetAll() from the config parser.

Simplify the test matrix from 6 to 4 cases (security and auth are
orthogonal, so the full 3x2 matrix is unnecessary).  Update run_test.sh to
invoke the new Client three times and use port-polling instead of sleep.
</content>
</entry>
<entry>
<title>Replace CLI arguments with config-file parser and add integration tests</title>
<updated>2026-02-17T10:07:37Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-17T10:07:37Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkCOpcUa/commit/?id=a54421dd976fd8081e96c11c2621076876c9986b'/>
<id>urn:sha1:a54421dd976fd8081e96c11c2621076876c9986b</id>
<content type='text'>
Introduce a reusable key=value config parser (config.h/c) and convert
all three programs to read their settings from config files instead of
positional command-line arguments.  Add example config files in config/
and 6 CTest integration tests covering None/Basic256Sha256/Aes128 with
anonymous and user authentication.  Remove the now-obsolete launch.sh.
</content>
</entry>
</feed>
