Sfoglia il codice sorgente

bug fixes within browse service (nodeclass mask = 0)

FlorianPalm 10 anni fa
parent
commit
3e7322fef6
2 ha cambiato i file con 22 aggiunte e 16 eliminazioni
  1. 17 12
      src/ua_application.c
  2. 5 4
      src/ua_services_view.c

+ 17 - 12
src/ua_application.c

@@ -97,18 +97,6 @@ void appMockup_init() {
 		{RefTypeId_Organizes, UA_FALSE, ObjId_ViewsFolder}};
 
 	Namespace_insert(ns0,(UA_Node*)root);
-	/*TEST */
-	const UA_Node * foundNode1;
-	const UA_Node * foundNode2;
-	Namespace_Entry_Lock *lock1;
-
-	Namespace_get(ns0, &root->nodeId,
-			&foundNode1, &lock1);
-
-	Namespace_get(ns0, &foundNode1->references[0].targetId.nodeId,
-			&foundNode2, &lock1);
-
-	/*TEST END*/
 	// Objects
 	UA_ObjectNode *objects;
 	UA_ObjectNode_new(&objects);
@@ -236,10 +224,27 @@ void appMockup_init() {
 	/* v->historizing = UA_FALSE; */
 	/* Namespace_insert(ns0,np); */
 
+
+	/*TEST */
+	const UA_Node * foundNode1;
+	const UA_Node * foundNode2;
+	Namespace_Entry_Lock *lock1;
+
+	Namespace_get(ns0, &root->nodeId,
+			&foundNode1, &lock1);
+
+	Namespace_get(ns0, &foundNode1->references[0].targetId.nodeId,
+			&foundNode2, &lock1);
+
+	/*TEST END*/
+
+
     /*******************/
     /* Namespace local */
     /*******************/
 
+
+
 #if defined(DEBUG) && defined(VERBOSE)
 	uint32_t i;
 	for (i=0;i < ns0->size;i++) {

+ 5 - 4
src/ua_services_view.c

@@ -47,8 +47,8 @@ UA_Int32 Service_Browse(SL_Channel *channel, const UA_BrowseRequest *request,
 							&targetNode, &lock1);
 
 					if (ret==UA_SUCCESS &&targetNode
-							&& (request->nodesToBrowse->nodeClassMask
-									& targetNode->nodeClass)) {
+							&& ((request->nodesToBrowse->nodeClassMask
+									& targetNode->nodeClass) || (request->nodesToBrowse->nodeClassMask == 0))) {
 						UA_UInt32 mask = 0;
 						rd->resultMask = 0;
 						for (mask = 0x01; mask <= 0x40; mask *= 2) {
@@ -88,9 +88,10 @@ UA_Int32 Service_Browse(SL_Channel *channel, const UA_BrowseRequest *request,
 								}
 								break;
 							}
-							UA_list_addPayloadToBack(&referencesToReturn, rd);
-							j++;
 						}
+						UA_list_addPayloadToBack(&referencesToReturn, rd);
+						j++;
+
 					}
 				}
 				k++;