aboutsummaryrefslogtreecommitdiffstats
path: root/src/server_lds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server_lds.c')
-rw-r--r--src/server_lds.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/server_lds.c b/src/server_lds.c
index c6960d5..2fe508f 100644
--- a/src/server_lds.c
+++ b/src/server_lds.c
@@ -35,10 +35,21 @@ main (int argc, char *argv[])
signal (SIGINT, stopHandler);
signal (SIGTERM, stopHandler);
- if (argc != 2)
+ if (argc < 2 || argc > 3)
{
UA_LOG_FATAL (UA_Log_Stdout, UA_LOGCATEGORY_USERLAND,
- "Usage: %s <config-file>", argv[0]);
+ "Usage: %s <config-file> [log-level]", argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ const char *logLevelStr = (argc == 3) ? argv[2] : "info";
+ int logLevel = parseLogLevel (logLevelStr);
+ if (logLevel < 0)
+ {
+ UA_LOG_FATAL (UA_Log_Stdout, UA_LOGCATEGORY_USERLAND,
+ "Unknown log level: %s "
+ "(expected trace, debug, info, warning, error, fatal)",
+ logLevelStr);
return EXIT_FAILURE;
}
@@ -116,6 +127,12 @@ main (int argc, char *argv[])
}
UA_ServerConfig *serverConfig = UA_Server_getConfig (server);
+ serverConfig->logging->context = (void *)(uintptr_t)logLevel;
+
+ /* Some OPC UA stacks omit the timestamp in the request header. The
+ default behaviour rejects these requests with BadInvalidTimestamp.
+ Downgrade to a warning so third-party servers can still register. */
+ serverConfig->verifyRequestTimestamp = UA_RULEHANDLING_WARN;
/* Configure access control after server creation because
UA_ServerConfig_setDefaultWithSecurityPolicies (called by