aboutsummaryrefslogtreecommitdiffstats
path: root/src/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.c')
-rw-r--r--src/common.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/common.c b/src/common.c
index 39a2a68..f8b08a1 100644
--- a/src/common.c
+++ b/src/common.c
@@ -356,10 +356,20 @@ createServer (UA_UInt16 port, const char *applicationUri, const char *certPath,
for (size_t i = 0; i < trustSize; i++)
trustList[i] = loadFile (trustPaths[i]);
- *retval = UA_ServerConfig_setDefaultWithSecurityPolicies (
+ *retval = UA_ServerConfig_setDefaultWithSecureSecurityPolicies (
config, port, &certificate, &privateKey, trustList, trustSize, NULL,
0, NULL, 0);
+ /* Also offer SecurityPolicy#None, but restricted to discovery
+ services (FindServers, GetEndpoints) so that unencrypted clients
+ can still discover the server without being able to open a
+ full session. */
+ if (*retval == UA_STATUSCODE_GOOD)
+ {
+ UA_ServerConfig_addSecurityPolicyNone (config, &certificate);
+ config->securityPolicyNoneDiscoveryOnly = true;
+ }
+
UA_ByteString_clear (&certificate);
UA_ByteString_clear (&privateKey);
for (size_t i = 0; i < trustSize; i++)