소스 검색

CTT: Set realistic values for Operation limits

Signed-off-by: Jayanth Velusamy <jayanth.v@kalycito.com>
Jayanth Velusamy 4 년 전
부모
커밋
b6f285b5da
2개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      examples/server_ctt.c
  2. 5 0
      src/server/ua_server_ns0.c

+ 12 - 0
examples/server_ctt.c

@@ -18,6 +18,8 @@
 
 #include "common.h"
 
+#define MAX_OPERATION_LIMIT 10000
+
 /* This server is configured to the Compliance Testing Tools (CTT) against. The
  * corresponding CTT configuration is available at
  * https://github.com/open62541/open62541-ctt */
@@ -735,6 +737,16 @@ int main(int argc, char **argv) {
     if(!enableSec)
         disableOutdatedSecurityPolicy(&config);
 
+    /* Set operation limits */
+    config.maxNodesPerRead = MAX_OPERATION_LIMIT;
+    config.maxNodesPerWrite = MAX_OPERATION_LIMIT;
+    config.maxNodesPerMethodCall = MAX_OPERATION_LIMIT;
+    config.maxNodesPerBrowse = MAX_OPERATION_LIMIT;
+    config.maxNodesPerRegisterNodes = MAX_OPERATION_LIMIT;
+    config.maxNodesPerTranslateBrowsePathsToNodeIds = MAX_OPERATION_LIMIT;
+    config.maxNodesPerNodeManagement = MAX_OPERATION_LIMIT;
+    config.maxMonitoredItemsPerCall = MAX_OPERATION_LIMIT;
+
     /* If RequestTimestamp is '0', log the warning and proceed */
     config.verifyRequestTimestamp = UA_RULEHANDLING_WARN;
 

+ 5 - 0
src/server/ua_server_ns0.c

@@ -958,6 +958,11 @@ UA_Server_initNS0(UA_Server *server) {
     retVal |= writeNs0Variable(server, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXMONITOREDITEMSPERCALL,
                                &server->config.maxMonitoredItemsPerCall, &UA_TYPES[UA_TYPES_UINT32]);
 
+    UA_Server_deleteNode(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYREADDATA), true);
+    UA_Server_deleteNode(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYREADEVENTS), true);
+    UA_Server_deleteNode(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYUPDATEDATA), true);
+    UA_Server_deleteNode(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYUPDATEEVENTS), true);
+
 #ifndef UA_ENABLE_HISTORIZING
     UA_Server_deleteNode(server, UA_NODEID_NUMERIC(0, UA_NS0ID_HISTORYSERVERCAPABILITIES), true);
 #else