Browse Source

Handle return values correctly for NS0 initialization

Stefan Profanter 6 years ago
parent
commit
9e453697c5
1 changed files with 16 additions and 6 deletions
  1. 16 6
      src/server/ua_server_ns0.c

+ 16 - 6
src/server/ua_server_ns0.c

@@ -569,9 +569,17 @@ UA_Server_initNS0(UA_Server *server) {
     retVal = ua_namespace0(server);
 #else
     /* Create a minimal server object */
-    UA_Server_minimalServerObject(server);
+    retVal = UA_Server_minimalServerObject(server);
 #endif
 
+    if(retVal != UA_STATUSCODE_GOOD) {
+        UA_LOG_ERROR(server->config.logger, UA_LOGCATEGORY_SERVER,
+                     "Initialization of Namespace 0 (before bootstrapping) "
+                     "failed with %s. See previous outputs for any error messages.",
+                     UA_StatusCode_name(retVal));
+        return UA_STATUSCODE_BADINTERNALERROR;
+    }
+
     /* NamespaceArray */
     UA_DataSource namespaceDataSource = {readNamespaces, writeNamespaces};
     retVal |= UA_Server_setVariableNode_dataSource(server,
@@ -583,10 +591,6 @@ UA_Server_initNS0(UA_Server *server) {
                                     &server->config.applicationDescription.applicationUri,
                                     1, &UA_TYPES[UA_TYPES_STRING]);
 
-    /* MinSupportedSampleRate */
-    retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_MINSUPPORTEDSAMPLERATE,
-                               &server->config.samplingIntervalLimits.min, &UA_TYPES[UA_TYPES_DURATION]);
-
     /* ServerStatus */
     UA_DataSource serverStatus = {readStatus, NULL};
     retVal |= UA_Server_setVariableNode_dataSource(server,
@@ -634,6 +638,10 @@ UA_Server_initNS0(UA_Server *server) {
 
 #ifdef UA_GENERATED_NAMESPACE_ZERO
 
+    /* MinSupportedSampleRate */
+    retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_MINSUPPORTEDSAMPLERATE,
+                               &server->config.samplingIntervalLimits.min, &UA_TYPES[UA_TYPES_DURATION]);
+
     /* SecondsTillShutdown */
     UA_UInt32 secondsTillShutdown = 0;
     retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERSTATUS_SECONDSTILLSHUTDOWN,
@@ -828,10 +836,12 @@ UA_Server_initNS0(UA_Server *server) {
                                 overflowAttr, NULL, NULL);
 #endif
 
-    if(retVal != UA_STATUSCODE_GOOD)
+    if(retVal != UA_STATUSCODE_GOOD) {
         UA_LOG_ERROR(server->config.logger, UA_LOGCATEGORY_SERVER,
                      "Initialization of Namespace 0 (after bootstrapping) "
                      "failed with %s. See previous outputs for any error messages.",
                      UA_StatusCode_name(retVal));
+        return UA_STATUSCODE_BADINTERNALERROR;
+    }
     return UA_STATUSCODE_GOOD;
 }