diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-17 19:06:22 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-17 19:06:22 +0100 |
| commit | 827e90e0daabe32e058e08dd2a253425898a7e7a (patch) | |
| tree | ecd3f31da63890ac029b7929eade88f38e078b3d /src/config.c | |
| parent | e4ba24b3d24fdce36bc9dbd3c2c8f00b0ec23335 (diff) | |
| download | BobinkCOpcUa-827e90e0daabe32e058e08dd2a253425898a7e7a.tar.gz BobinkCOpcUa-827e90e0daabe32e058e08dd2a253425898a7e7a.zip | |
Replace ClientFindServers with unified Client, use trust store directories
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.
Diffstat (limited to 'src/config.c')
| -rw-r--r-- | src/config.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/config.c b/src/config.c index 163f601..2165821 100644 --- a/src/config.c +++ b/src/config.c @@ -200,46 +200,6 @@ configRequireInt (const Config *cfg, const char *key, const char *program) } void -configGetAll (const Config *cfg, const char *key, char ***out, size_t *size) -{ - /* First pass: count matches. */ - size_t count = 0; - for (size_t i = 0; i < cfg->count; i++) - { - if (strcmp (cfg->entries[i].key, key) == 0) - count++; - } - - if (count == 0) - { - *out = NULL; - *size = 0; - return; - } - - /* Second pass: collect pointers. */ - char **arr = malloc (count * sizeof (char *)); - if (!arr) - { - UA_LOG_ERROR (UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, - "Config: out of memory"); - *out = NULL; - *size = 0; - return; - } - - size_t idx = 0; - for (size_t i = 0; i < cfg->count; i++) - { - if (strcmp (cfg->entries[i].key, key) == 0) - arr[idx++] = cfg->entries[i].value; - } - - *out = arr; - *size = count; -} - -void configFree (Config *cfg) { for (size_t i = 0; i < cfg->count; i++) |
