aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-03-24 15:24:35 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-03-24 15:24:35 +0100
commitb2c29c80b1e4395853941b67c2e674306eebf2fa (patch)
tree95b2440f7bf01a2d965b9d452f3ff5d0e3692086
parentdbac2b178e73e8d42b63b9b407820ff7d643d575 (diff)
downloadBobinkCOpcUa-b2c29c80b1e4395853941b67c2e674306eebf2fa.tar.gz
BobinkCOpcUa-b2c29c80b1e4395853941b67c2e674306eebf2fa.zip
Add --static flag to disable periodic node randomization
-rw-r--r--src/server_register.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/server_register.c b/src/server_register.c
index c45949b..7c90701 100644
--- a/src/server_register.c
+++ b/src/server_register.c
@@ -18,6 +18,7 @@
#include <open62541/server.h>
#include <signal.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
@@ -127,11 +128,26 @@ main (int argc, char **argv)
signal (SIGTERM, _s_stop_handler);
srand ((unsigned)time (NULL));
+ /* Check for --static flag (disables periodic node randomization). */
+ bool static_nodes = false;
+ for (int i = 1; i < argc; i++)
+ {
+ if (strcmp (argv[i], "--static") == 0)
+ {
+ static_nodes = true;
+ /* Remove the flag from argv so positional parsing is unaffected. */
+ for (int j = i; j < argc - 1; j++)
+ argv[j] = argv[j + 1];
+ argc--;
+ i--;
+ }
+ }
+
if (argc < 4 || argc > 6)
{
UA_LOG_FATAL (UA_Log_Stdout, UA_LOGCATEGORY_USERLAND,
"Usage: %s <server-config> <client-config> "
- "<discovery-url> [nodes-config] [log-level]",
+ "<discovery-url> [nodes-config] [log-level] [--static]",
argv[0]);
return EXIT_FAILURE;
}
@@ -262,8 +278,9 @@ main (int argc, char **argv)
if (nodes_cfg.count > 0)
{
nodes_config_randomize (server, &nodes_cfg);
- UA_Server_addRepeatedCallback (server, _s_update_nodes_cb, &nodes_cfg,
- 5000, &update_cb_id);
+ if (!static_nodes)
+ UA_Server_addRepeatedCallback (server, _s_update_nodes_cb, &nodes_cfg,
+ 5000, &update_cb_id);
}
retval = _s_register_with_lds (server, &lds_params, discovery_endpoint);