Quellcode durchsuchen

refactor(plugin): Don't memset the initial config

The Nodestore has to be configured already for the server
initialization. Memsetting the config afterwards is therefore not
allowed. This was unproblematic when the Nodestore was still defined as
part of the server (instead of the config).
Julius Pfrommer vor 5 Jahren
Ursprung
Commit
74f293e139
1 geänderte Dateien mit 63 neuen und 57 gelöschten Zeilen
  1. 63 57
      plugins/ua_config_default.c

+ 63 - 57
plugins/ua_config_default.c

@@ -42,6 +42,7 @@ UA_Server *
 UA_Server_new() {
 UA_Server_new() {
     UA_ServerConfig config;
     UA_ServerConfig config;
     memset(&config, 0, sizeof(UA_ServerConfig));
     memset(&config, 0, sizeof(UA_ServerConfig));
+    /* Set a default logger and NodeStore for the initialization */
     config.logger = UA_Log_Stdout_;
     config.logger = UA_Log_Stdout_;
     UA_Nodestore_ZipTree(&config.nodestore);
     UA_Nodestore_ZipTree(&config.nodestore);
     return UA_Server_newWithConfig(&config);
     return UA_Server_newWithConfig(&config);
@@ -120,6 +121,7 @@ setDefaultConfig(UA_ServerConfig *conf) {
     conf->shutdownDelay = 0.0;
     conf->shutdownDelay = 0.0;
 
 
     /* Server Description */
     /* Server Description */
+    UA_BuildInfo_clear(&conf->buildInfo);
     conf->buildInfo.productUri = UA_STRING_ALLOC(PRODUCT_URI);
     conf->buildInfo.productUri = UA_STRING_ALLOC(PRODUCT_URI);
     conf->buildInfo.manufacturerName = UA_STRING_ALLOC(MANUFACTURER_NAME);
     conf->buildInfo.manufacturerName = UA_STRING_ALLOC(MANUFACTURER_NAME);
     conf->buildInfo.productName = UA_STRING_ALLOC(PRODUCT_NAME);
     conf->buildInfo.productName = UA_STRING_ALLOC(PRODUCT_NAME);
@@ -133,6 +135,7 @@ setDefaultConfig(UA_ServerConfig *conf) {
     #endif
     #endif
     conf->buildInfo.buildDate = UA_DateTime_now();
     conf->buildInfo.buildDate = UA_DateTime_now();
 
 
+    UA_ApplicationDescription_clear(&conf->applicationDescription);
     conf->applicationDescription.applicationUri = UA_STRING_ALLOC(APPLICATION_URI_SERVER);
     conf->applicationDescription.applicationUri = UA_STRING_ALLOC(APPLICATION_URI_SERVER);
     conf->applicationDescription.productUri = UA_STRING_ALLOC(PRODUCT_URI);
     conf->applicationDescription.productUri = UA_STRING_ALLOC(PRODUCT_URI);
     conf->applicationDescription.applicationName =
     conf->applicationDescription.applicationName =
@@ -144,7 +147,7 @@ setDefaultConfig(UA_ServerConfig *conf) {
     /* conf->applicationDescription.discoveryUrls = NULL; */
     /* conf->applicationDescription.discoveryUrls = NULL; */
 
 
 #ifdef UA_ENABLE_DISCOVERY_MULTICAST
 #ifdef UA_ENABLE_DISCOVERY_MULTICAST
-    UA_MdnsDiscoveryConfiguration_init(&conf->discovery.mdns);
+    UA_MdnsDiscoveryConfiguration_clear(&conf->discovery.mdns);
     conf->discovery.mdnsInterfaceIP = UA_STRING_NULL;
     conf->discovery.mdnsInterfaceIP = UA_STRING_NULL;
 #endif
 #endif
 
 
@@ -164,11 +167,11 @@ setDefaultConfig(UA_ServerConfig *conf) {
      * overwritten when the policy is specialized. */
      * overwritten when the policy is specialized. */
     UA_CertificateVerification_AcceptAll(&conf->certificateVerification);
     UA_CertificateVerification_AcceptAll(&conf->certificateVerification);
 
 
-    /* Global Node Lifecycle */
-    conf->nodeLifecycle.constructor = NULL;
-    conf->nodeLifecycle.destructor = NULL;
-    conf->nodeLifecycle.createOptionalChild = NULL;
-    conf->nodeLifecycle.generateChildNodeId = NULL;
+    /* * Global Node Lifecycle * */
+    /* conf->nodeLifecycle.constructor = NULL; */
+    /* conf->nodeLifecycle.destructor = NULL; */
+    /* conf->nodeLifecycle.createOptionalChild = NULL; */
+    /* conf->nodeLifecycle.generateChildNodeId = NULL; */
 
 
     /* Relax constraints for the InformationModel */
     /* Relax constraints for the InformationModel */
     conf->relaxEmptyValueConstraint = true; /* Allow empty values */
     conf->relaxEmptyValueConstraint = true; /* Allow empty values */
@@ -244,15 +247,14 @@ addDefaultNetworkLayers(UA_ServerConfig *conf, UA_UInt16 portNumber,
     return UA_ServerConfig_addNetworkLayerTCP(conf, portNumber, sendBufferSize, recvBufferSize);
     return UA_ServerConfig_addNetworkLayerTCP(conf, portNumber, sendBufferSize, recvBufferSize);
 }
 }
 
 
-
-
 #ifdef UA_ENABLE_WEBSOCKET_SERVER
 #ifdef UA_ENABLE_WEBSOCKET_SERVER
 UA_EXPORT UA_StatusCode
 UA_EXPORT UA_StatusCode
 UA_ServerConfig_addNetworkLayerWS(UA_ServerConfig *conf, UA_UInt16 portNumber,
 UA_ServerConfig_addNetworkLayerWS(UA_ServerConfig *conf, UA_UInt16 portNumber,
                                    UA_UInt32 sendBufferSize, UA_UInt32 recvBufferSize) {
                                    UA_UInt32 sendBufferSize, UA_UInt32 recvBufferSize) {
     /* Add a network layer */
     /* Add a network layer */
     UA_ServerNetworkLayer *tmp = (UA_ServerNetworkLayer *)
     UA_ServerNetworkLayer *tmp = (UA_ServerNetworkLayer *)
-        UA_realloc(conf->networkLayers, sizeof(UA_ServerNetworkLayer) * (1 + conf->networkLayersSize));
+        UA_realloc(conf->networkLayers,
+                   sizeof(UA_ServerNetworkLayer) * (1 + conf->networkLayersSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     conf->networkLayers = tmp;
     conf->networkLayers = tmp;
@@ -278,7 +280,8 @@ UA_ServerConfig_addNetworkLayerTCP(UA_ServerConfig *conf, UA_UInt16 portNumber,
                                    UA_UInt32 sendBufferSize, UA_UInt32 recvBufferSize) {
                                    UA_UInt32 sendBufferSize, UA_UInt32 recvBufferSize) {
     /* Add a network layer */
     /* Add a network layer */
     UA_ServerNetworkLayer *tmp = (UA_ServerNetworkLayer *)
     UA_ServerNetworkLayer *tmp = (UA_ServerNetworkLayer *)
-        UA_realloc(conf->networkLayers, sizeof(UA_ServerNetworkLayer) * (1 + conf->networkLayersSize));
+        UA_realloc(conf->networkLayers,
+                   sizeof(UA_ServerNetworkLayer) * (1 + conf->networkLayersSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     conf->networkLayers = tmp;
     conf->networkLayers = tmp;
@@ -301,11 +304,10 @@ UA_ServerConfig_addNetworkLayerTCP(UA_ServerConfig *conf, UA_UInt16 portNumber,
 UA_EXPORT UA_StatusCode
 UA_EXPORT UA_StatusCode
 UA_ServerConfig_addSecurityPolicyNone(UA_ServerConfig *config, 
 UA_ServerConfig_addSecurityPolicyNone(UA_ServerConfig *config, 
                                       const UA_ByteString *certificate) {
                                       const UA_ByteString *certificate) {
-    UA_StatusCode retval;
-
     /* Allocate the SecurityPolicies */
     /* Allocate the SecurityPolicies */
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
-        UA_realloc(config->securityPolicies, sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
+        UA_realloc(config->securityPolicies,
+                   sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     config->securityPolicies = tmp;
     config->securityPolicies = tmp;
@@ -314,8 +316,9 @@ UA_ServerConfig_addSecurityPolicyNone(UA_ServerConfig *config,
     UA_ByteString localCertificate = UA_BYTESTRING_NULL;
     UA_ByteString localCertificate = UA_BYTESTRING_NULL;
     if(certificate)
     if(certificate)
         localCertificate = *certificate;
         localCertificate = *certificate;
-    retval = UA_SecurityPolicy_None(&config->securityPolicies[config->securityPoliciesSize], NULL,
-                                    localCertificate, &config->logger);
+    UA_StatusCode retval =
+        UA_SecurityPolicy_None(&config->securityPolicies[config->securityPoliciesSize],
+                               NULL, localCertificate, &config->logger);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->securityPoliciesSize++;
     config->securityPoliciesSize++;
@@ -325,13 +328,11 @@ UA_ServerConfig_addSecurityPolicyNone(UA_ServerConfig *config,
 
 
 UA_EXPORT UA_StatusCode
 UA_EXPORT UA_StatusCode
 UA_ServerConfig_addEndpoint(UA_ServerConfig *config, const UA_String securityPolicyUri, 
 UA_ServerConfig_addEndpoint(UA_ServerConfig *config, const UA_String securityPolicyUri, 
-                            UA_MessageSecurityMode securityMode)
-{
-    UA_StatusCode retval;
-
+                            UA_MessageSecurityMode securityMode) {
     /* Allocate the endpoint */
     /* Allocate the endpoint */
-    UA_EndpointDescription * tmp = (UA_EndpointDescription *)
-        UA_realloc(config->endpoints, sizeof(UA_EndpointDescription) * (1 + config->endpointsSize));
+    UA_EndpointDescription *tmp = (UA_EndpointDescription *)
+        UA_realloc(config->endpoints,
+                   sizeof(UA_EndpointDescription) * (1 + config->endpointsSize));
     if(!tmp) {
     if(!tmp) {
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     }
     }
@@ -349,8 +350,9 @@ UA_ServerConfig_addEndpoint(UA_ServerConfig *config, const UA_String securityPol
         return UA_STATUSCODE_BADINVALIDARGUMENT;
         return UA_STATUSCODE_BADINVALIDARGUMENT;
 
 
     /* Populate the endpoint */
     /* Populate the endpoint */
-    retval = createEndpoint(config, &config->endpoints[config->endpointsSize],
-                            policy, securityMode);
+    UA_StatusCode retval =
+        createEndpoint(config, &config->endpoints[config->endpointsSize],
+                       policy, securityMode);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->endpointsSize++;
     config->endpointsSize++;
@@ -360,33 +362,36 @@ UA_ServerConfig_addEndpoint(UA_ServerConfig *config, const UA_String securityPol
 
 
 UA_EXPORT UA_StatusCode
 UA_EXPORT UA_StatusCode
 UA_ServerConfig_addAllEndpoints(UA_ServerConfig *config) {
 UA_ServerConfig_addAllEndpoints(UA_ServerConfig *config) {
-    UA_StatusCode retval;
-
     /* Allocate the endpoints */
     /* Allocate the endpoints */
     UA_EndpointDescription * tmp = (UA_EndpointDescription *)
     UA_EndpointDescription * tmp = (UA_EndpointDescription *)
-        UA_realloc(config->endpoints, sizeof(UA_EndpointDescription) * (2 * config->securityPoliciesSize + config->endpointsSize));
+        UA_realloc(config->endpoints,
+                   sizeof(UA_EndpointDescription) *
+                   (2 * config->securityPoliciesSize + config->endpointsSize));
     if(!tmp) {
     if(!tmp) {
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     }
     }
     config->endpoints = tmp;
     config->endpoints = tmp;
 
 
     /* Populate the endpoints */
     /* Populate the endpoints */
-    for (size_t i = 0; i < config->securityPoliciesSize; ++i) {
-        if (UA_String_equal(&UA_SECURITY_POLICY_NONE_URI, &config->securityPolicies[i].policyUri)) {
-            retval = createEndpoint(config, &config->endpoints[config->endpointsSize],
-                                    &config->securityPolicies[i], UA_MESSAGESECURITYMODE_NONE);
+    for(size_t i = 0; i < config->securityPoliciesSize; ++i) {
+        if(UA_String_equal(&UA_SECURITY_POLICY_NONE_URI, &config->securityPolicies[i].policyUri)) {
+            UA_StatusCode retval =
+                createEndpoint(config, &config->endpoints[config->endpointsSize],
+                               &config->securityPolicies[i], UA_MESSAGESECURITYMODE_NONE);
             if(retval != UA_STATUSCODE_GOOD)
             if(retval != UA_STATUSCODE_GOOD)
                 return retval;
                 return retval;
             config->endpointsSize++;
             config->endpointsSize++;
         } else {
         } else {
-            retval = createEndpoint(config, &config->endpoints[config->endpointsSize],
-                                    &config->securityPolicies[i], UA_MESSAGESECURITYMODE_SIGN);
+            UA_StatusCode retval =
+                createEndpoint(config, &config->endpoints[config->endpointsSize],
+                               &config->securityPolicies[i], UA_MESSAGESECURITYMODE_SIGN);
             if(retval != UA_STATUSCODE_GOOD)
             if(retval != UA_STATUSCODE_GOOD)
                 return retval;
                 return retval;
             config->endpointsSize++;
             config->endpointsSize++;
 
 
             retval = createEndpoint(config, &config->endpoints[config->endpointsSize],
             retval = createEndpoint(config, &config->endpoints[config->endpointsSize],
-                                    &config->securityPolicies[i], UA_MESSAGESECURITYMODE_SIGNANDENCRYPT);
+                                    &config->securityPolicies[i],
+                                    UA_MESSAGESECURITYMODE_SIGNANDENCRYPT);
             if(retval != UA_STATUSCODE_GOOD)
             if(retval != UA_STATUSCODE_GOOD)
                 return retval;
                 return retval;
             config->endpointsSize++;
             config->endpointsSize++;
@@ -433,7 +438,8 @@ UA_ServerConfig_setMinimalCustomBuffer(UA_ServerConfig *config, UA_UInt16 portNu
     }
     }
 
 
     /* Allocate the endpoint */
     /* Allocate the endpoint */
-    retval = UA_ServerConfig_addEndpoint(config, UA_SECURITY_POLICY_NONE_URI, UA_MESSAGESECURITYMODE_NONE);
+    retval = UA_ServerConfig_addEndpoint(config, UA_SECURITY_POLICY_NONE_URI,
+                                         UA_MESSAGESECURITYMODE_NONE);
     if(retval != UA_STATUSCODE_GOOD) {
     if(retval != UA_STATUSCODE_GOOD) {
         UA_ServerConfig_clean(config);
         UA_ServerConfig_clean(config);
         return retval;
         return retval;
@@ -448,11 +454,10 @@ UA_EXPORT UA_StatusCode
 UA_ServerConfig_addSecurityPolicyBasic128Rsa15(UA_ServerConfig *config, 
 UA_ServerConfig_addSecurityPolicyBasic128Rsa15(UA_ServerConfig *config, 
                                                const UA_ByteString *certificate,
                                                const UA_ByteString *certificate,
                                                const UA_ByteString *privateKey) {
                                                const UA_ByteString *privateKey) {
-    UA_StatusCode retval;
-
     /* Allocate the SecurityPolicies */
     /* Allocate the SecurityPolicies */
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
-        UA_realloc(config->securityPolicies, sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
+        UA_realloc(config->securityPolicies,
+                   sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     config->securityPolicies = tmp;
     config->securityPolicies = tmp;
@@ -464,9 +469,10 @@ UA_ServerConfig_addSecurityPolicyBasic128Rsa15(UA_ServerConfig *config,
         localCertificate = *certificate;
         localCertificate = *certificate;
     if(privateKey)
     if(privateKey)
        localPrivateKey = *privateKey;
        localPrivateKey = *privateKey;
-    retval = UA_SecurityPolicy_Basic128Rsa15(&config->securityPolicies[config->securityPoliciesSize],
-                                             &config->certificateVerification,
-                                             localCertificate, localPrivateKey, &config->logger);
+    UA_StatusCode retval =
+        UA_SecurityPolicy_Basic128Rsa15(&config->securityPolicies[config->securityPoliciesSize],
+                                        &config->certificateVerification,
+                                        localCertificate, localPrivateKey, &config->logger);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->securityPoliciesSize++;
     config->securityPoliciesSize++;
@@ -478,11 +484,10 @@ UA_EXPORT UA_StatusCode
 UA_ServerConfig_addSecurityPolicyBasic256(UA_ServerConfig *config, 
 UA_ServerConfig_addSecurityPolicyBasic256(UA_ServerConfig *config, 
                                           const UA_ByteString *certificate,
                                           const UA_ByteString *certificate,
                                           const UA_ByteString *privateKey) {
                                           const UA_ByteString *privateKey) {
-    UA_StatusCode retval;
-
     /* Allocate the SecurityPolicies */
     /* Allocate the SecurityPolicies */
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
-        UA_realloc(config->securityPolicies, sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
+        UA_realloc(config->securityPolicies,
+                   sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     config->securityPolicies = tmp;
     config->securityPolicies = tmp;
@@ -494,9 +499,10 @@ UA_ServerConfig_addSecurityPolicyBasic256(UA_ServerConfig *config,
         localCertificate = *certificate;
         localCertificate = *certificate;
     if(privateKey)
     if(privateKey)
        localPrivateKey = *privateKey;
        localPrivateKey = *privateKey;
-    retval = UA_SecurityPolicy_Basic256(&config->securityPolicies[config->securityPoliciesSize],
-                                        &config->certificateVerification,
-                                        localCertificate, localPrivateKey, &config->logger);
+    UA_StatusCode retval =
+        UA_SecurityPolicy_Basic256(&config->securityPolicies[config->securityPoliciesSize],
+                                   &config->certificateVerification,
+                                   localCertificate, localPrivateKey, &config->logger);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->securityPoliciesSize++;
     config->securityPoliciesSize++;
@@ -508,11 +514,10 @@ UA_EXPORT UA_StatusCode
 UA_ServerConfig_addSecurityPolicyBasic256Sha256(UA_ServerConfig *config, 
 UA_ServerConfig_addSecurityPolicyBasic256Sha256(UA_ServerConfig *config, 
                                                 const UA_ByteString *certificate,
                                                 const UA_ByteString *certificate,
                                                 const UA_ByteString *privateKey) {
                                                 const UA_ByteString *privateKey) {
-    UA_StatusCode retval;
-
     /* Allocate the SecurityPolicies */
     /* Allocate the SecurityPolicies */
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
-        UA_realloc(config->securityPolicies, sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
+        UA_realloc(config->securityPolicies,
+                   sizeof(UA_SecurityPolicy) * (1 + config->securityPoliciesSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     config->securityPolicies = tmp;
     config->securityPolicies = tmp;
@@ -524,9 +529,10 @@ UA_ServerConfig_addSecurityPolicyBasic256Sha256(UA_ServerConfig *config,
         localCertificate = *certificate;
         localCertificate = *certificate;
     if(privateKey)
     if(privateKey)
        localPrivateKey = *privateKey;
        localPrivateKey = *privateKey;
-    retval = UA_SecurityPolicy_Basic256Sha256(&config->securityPolicies[config->securityPoliciesSize],
-                                              &config->certificateVerification,
-                                              localCertificate, localPrivateKey, &config->logger);
+    UA_StatusCode retval =
+        UA_SecurityPolicy_Basic256Sha256(&config->securityPolicies[config->securityPoliciesSize],
+                                         &config->certificateVerification,
+                                         localCertificate, localPrivateKey, &config->logger);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->securityPoliciesSize++;
     config->securityPoliciesSize++;
@@ -538,11 +544,10 @@ UA_EXPORT UA_StatusCode
 UA_ServerConfig_addAllSecurityPolicies(UA_ServerConfig *config,
 UA_ServerConfig_addAllSecurityPolicies(UA_ServerConfig *config,
                                        const UA_ByteString *certificate,
                                        const UA_ByteString *certificate,
                                        const UA_ByteString *privateKey) {
                                        const UA_ByteString *privateKey) {
-    UA_StatusCode retval;
-
     /* Allocate the SecurityPolicies */
     /* Allocate the SecurityPolicies */
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
     UA_SecurityPolicy *tmp = (UA_SecurityPolicy *)
-        UA_realloc(config->securityPolicies, sizeof(UA_SecurityPolicy) * (4 + config->securityPoliciesSize));
+        UA_realloc(config->securityPolicies,
+                   sizeof(UA_SecurityPolicy) * (4 + config->securityPoliciesSize));
     if(!tmp)
     if(!tmp)
         return UA_STATUSCODE_BADOUTOFMEMORY;
         return UA_STATUSCODE_BADOUTOFMEMORY;
     config->securityPolicies = tmp;
     config->securityPolicies = tmp;
@@ -555,8 +560,9 @@ UA_ServerConfig_addAllSecurityPolicies(UA_ServerConfig *config,
     if(privateKey)
     if(privateKey)
        localPrivateKey = *privateKey;
        localPrivateKey = *privateKey;
 
 
-    retval = UA_SecurityPolicy_None(&config->securityPolicies[config->securityPoliciesSize], NULL,
-                                    localCertificate, &config->logger);
+    UA_StatusCode retval =
+        UA_SecurityPolicy_None(&config->securityPolicies[config->securityPoliciesSize],
+                               NULL, localCertificate, &config->logger);
     if(retval != UA_STATUSCODE_GOOD)
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
         return retval;
     config->securityPoliciesSize++;
     config->securityPoliciesSize++;