Browse Source

Events: More logging in UA_Server_triggerEvent

Julius Pfrommer 6 years ago
parent
commit
f6e3d96686
1 changed files with 20 additions and 12 deletions
  1. 20 12
      src/server/ua_subscription_events.c

+ 20 - 12
src/server/ua_subscription_events.c

@@ -377,27 +377,36 @@ UA_Server_triggerEvent(UA_Server *server, const UA_NodeId eventNodeId, const UA_
     }
 
     UA_StatusCode retval = eventSetStandardFields(server, &eventNodeId, &origin, outEventId);
-    if(retval != UA_STATUSCODE_GOOD)
+    if(retval != UA_STATUSCODE_GOOD) {
+        UA_LOG_WARNING(server->config.logger, UA_LOGCATEGORY_SERVER,
+                       "Events: Could not set the standard event fields with StatusCode %s",
+                       UA_StatusCode_name(retval));
         return retval;
+    }
 
-    /* get an array with all parents */
+    /* Get an array with all parents */
     struct getNodesHandle parentHandle;
     parentHandle.server = server;
     LIST_INIT(&parentHandle.nodes);
     retval = getParentsNodeIteratorCallback(origin, UA_TRUE, UA_NODEID_NULL, &parentHandle);
-    if(retval != UA_STATUSCODE_GOOD)
+    if(retval != UA_STATUSCODE_GOOD) {
+        UA_LOG_WARNING(server->config.logger, UA_LOGCATEGORY_SERVER,
+                       "Events: Could not create the list of nodes listening on the event with StatusCode %s",
+                       UA_StatusCode_name(retval));
         return retval;
+    }
 
-    /* add the event to each node's monitored items */
+    /* Add the event to each node's monitored items */
     Events_nodeListElement *parentIter, *tmp_parentIter;
     LIST_FOREACH_SAFE(parentIter, &parentHandle.nodes, listEntry, tmp_parentIter) {
         const UA_ObjectNode *node = (const UA_ObjectNode *) UA_Nodestore_get(server, &parentIter->nodeId);
         /* SLIST_FOREACH */
-        for (UA_MonitoredItem *monIter = node->monitoredItemQueue; monIter != NULL; monIter = monIter->next) {
+        for(UA_MonitoredItem *monIter = node->monitoredItemQueue; monIter != NULL; monIter = monIter->next) {
             retval = UA_Event_addEventToMonitoredItem(server, &eventNodeId, monIter);
-            if (retval != UA_STATUSCODE_GOOD) {
-                UA_Nodestore_release(server, (const UA_Node *) node);
-                return retval;
+            if(retval != UA_STATUSCODE_GOOD) {
+                UA_LOG_WARNING(server->config.logger, UA_LOGCATEGORY_SERVER,
+                               "Events: Could not add the event to a listening node with StatusCode %s",
+                               UA_StatusCode_name(retval));
             }
         }
         UA_Nodestore_release(server, (const UA_Node *) node);
@@ -407,12 +416,11 @@ UA_Server_triggerEvent(UA_Server *server, const UA_NodeId eventNodeId, const UA_
         UA_free(parentIter);
     }
 
-    /* delete the node representation of the event */
-    if (deleteEventNode) {
+    /* Delete the node representation of the event */
+    if(deleteEventNode) {
         retval = UA_Server_deleteNode(server, eventNodeId, UA_TRUE);
         if (retval != UA_STATUSCODE_GOOD) {
-            UA_LOG_WARNING(server->config.logger,
-                           UA_LOGCATEGORY_SERVER,
+            UA_LOG_WARNING(server->config.logger, UA_LOGCATEGORY_SERVER,
                            "Attempt to remove event using deleteNode failed. StatusCode %s",
                            UA_StatusCode_name(retval));
             return retval;