opc_ua/opcua_client_maker.py
branchwxPython4
changeset 3677 6d9040e07c32
parent 3674 d10a7907fb43
child 3750 f62625418bff
equal deleted inserted replaced
3676:2f79540660f6 3677:6d9040e07c32
   519 
   519 
   520 #include <open62541/client_config_default.h>
   520 #include <open62541/client_config_default.h>
   521 #include <open62541/client_highlevel.h>
   521 #include <open62541/client_highlevel.h>
   522 #include <open62541/plugin/log_stdout.h>
   522 #include <open62541/plugin/log_stdout.h>
   523 #include <open62541/plugin/securitypolicy.h>
   523 #include <open62541/plugin/securitypolicy.h>
       
   524 #include <open62541/plugin/securitypolicy_default.h>
   524 
   525 
   525 #include <open62541/types.h>
   526 #include <open62541/types.h>
   526 #include <open62541/types_generated_handling.h>
   527 #include <open62541/types_generated_handling.h>
   527 
   528 
   528 #define _Log(level, ...)                                                                           \\
   529 #define _Log(level, ...)                                                                           \\
   585 #define INIT_NoAuth()                                                                              \\
   586 #define INIT_NoAuth()                                                                              \\
   586     LogInfo("OPC-UA Init no auth");                                                                \\
   587     LogInfo("OPC-UA Init no auth");                                                                \\
   587     UA_ClientConfig_setDefault(cc);                                                                \\
   588     UA_ClientConfig_setDefault(cc);                                                                \\
   588     retval = UA_Client_connect(client, uri);
   589     retval = UA_Client_connect(client, uri);
   589 
   590 
   590 /* Note : Policy is ignored here since open62541 client supports all policies by default */
   591 /* Note : Single policy is enforced here, by default open62541 client supports all policies */
   591 #define INIT_x509(Policy, UpperCaseMode, PrivateKey, Certificate)                                  \\
   592 #define INIT_x509(Policy, UpperCaseMode, PrivateKey, Certificate)                                  \\
   592     LogInfo("OPC-UA Init x509 %s,%s,%s,%s", #Policy, #UpperCaseMode, PrivateKey, Certificate);     \\
   593     LogInfo("OPC-UA Init x509 %s,%s,%s,%s", #Policy, #UpperCaseMode, PrivateKey, Certificate);     \\
   593                                                                                                    \\
   594                                                                                                    \\
   594     UA_ByteString certificate = loadFile(Certificate);                                             \\
   595     UA_ByteString certificate = loadFile(Certificate);                                             \\
   595     UA_ByteString privateKey  = loadFile(PrivateKey);                                              \\
   596     UA_ByteString privateKey  = loadFile(PrivateKey);                                              \\
   596                                                                                                    \\
   597                                                                                                    \\
   597     cc->securityMode = UA_MESSAGESECURITYMODE_##UpperCaseMode;                                     \\
   598     cc->securityMode = UA_MESSAGESECURITYMODE_##UpperCaseMode;                                     \\
   598     UA_ClientConfig_setDefaultEncryption(cc, certificate, privateKey, NULL, 0, NULL, 0);           \\
   599                                                                                                    \\
       
   600     /* replacement for default behaviour */                                                        \\
       
   601     /* UA_ClientConfig_setDefaultEncryption(cc, certificate, privateKey, NULL, 0, NULL, 0); */     \\
       
   602     do{{                                                                                           \\
       
   603         retval = UA_ClientConfig_setDefault(cc);                                                   \\
       
   604         if(retval != UA_STATUSCODE_GOOD)                                                           \\
       
   605             break;                                                                                 \\
       
   606                                                                                                    \\
       
   607         UA_SecurityPolicy *sp = (UA_SecurityPolicy*)                                               \\
       
   608             UA_realloc(cc->securityPolicies, sizeof(UA_SecurityPolicy) * 2);                       \\
       
   609         if(!sp){{                                                                                  \\
       
   610             retval = UA_STATUSCODE_BADOUTOFMEMORY;                                                 \\
       
   611             break;                                                                                 \\
       
   612         }}                                                                                         \\
       
   613         cc->securityPolicies = sp;                                                                 \\
       
   614                                                                                                    \\
       
   615         retval = UA_SecurityPolicy_##Policy(&cc->securityPolicies[cc->securityPoliciesSize],       \\
       
   616                                                  certificate, privateKey, &cc->logger);            \\
       
   617         if(retval != UA_STATUSCODE_GOOD) {{                                                        \\
       
   618             UA_LOG_WARNING(&cc->logger, UA_LOGCATEGORY_USERLAND,                                   \\
       
   619                            "Could not add SecurityPolicy Policy with error code %s",               \\
       
   620                            UA_StatusCode_name(retval));                                            \\
       
   621             UA_free(cc->securityPolicies);                                                         \\
       
   622             cc->securityPolicies = NULL;                                                           \\
       
   623             break;                                                                                 \\
       
   624         }}                                                                                         \\
       
   625                                                                                                    \\
       
   626         ++cc->securityPoliciesSize;                                                                \\
       
   627     }} while(0);                                                                                   \\
   599                                                                                                    \\
   628                                                                                                    \\
   600     retval = UA_Client_connect(client, uri);                                                       \\
   629     retval = UA_Client_connect(client, uri);                                                       \\
   601                                                                                                    \\
   630                                                                                                    \\
   602     UA_ByteString_clear(&certificate);                                                             \\
   631     UA_ByteString_clear(&certificate);                                                             \\
   603     UA_ByteString_clear(&privateKey);
   632     UA_ByteString_clear(&privateKey);