Browse Source

Fix max nodes per browse handling (ServerCapabilities) (#1949)

* Add MaxNodesPerBrowse handling

Add suitable service handling.

* Add MaxNodesPerBrowse handling

Add suitable service handling.

* Add MaxNodesPerBrowse handling

Add suitable service handling.
Martin Lang 5 years ago
parent
commit
db86ab2478
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/server/ua_services_view.c

+ 6 - 0
src/server/ua_services_view.c

@@ -323,6 +323,12 @@ void Service_Browse(UA_Server *server, UA_Session *session,
                     const UA_BrowseRequest *request, UA_BrowseResponse *response) {
     UA_LOG_DEBUG_SESSION(server->config.logger, session, "Processing BrowseRequest");
 
+    if(server->config.maxNodesPerBrowse != 0 &&
+       request->nodesToBrowseSize > server->config.maxNodesPerBrowse) {
+        response->responseHeader.serviceResult = UA_STATUSCODE_BADTOOMANYOPERATIONS;
+        return;
+    }
+	
     /* No views supported at the moment */
     if(!UA_NodeId_isNull(&request->view.viewId)) {
         response->responseHeader.serviceResult = UA_STATUSCODE_BADVIEWIDUNKNOWN;