Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | add selected open62541 upstream changes in topcua subdir |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e9e95211a0d33a24c4d819431e940591 |
User & Date: | chw 2019-11-08 09:22:31.200 |
Context
2019-11-08
| ||
09:24 | attempt to fix FD_SETSIZE issues in tcl core check-in: 9ba84a8a76 user: chw tags: trunk | |
09:22 | add selected open62541 upstream changes in topcua subdir check-in: e9e95211a0 user: chw tags: trunk | |
05:38 | add tcl upstream changes check-in: edd0e8d3da user: chw tags: trunk | |
Changes
Changes to jni/topcua/open62541/chw.patch.
1 2 3 4 5 6 | The following patch relaxes type checking on attribute R/W functions. This simplifies the "opcua read ..." and "opcua write ..." logic. Another change allows the server's logger to be fully overriden. It changes the default timeout to 10 milliseconds and adds some functions to set the custom data type array on client and server. | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | The following patch relaxes type checking on attribute R/W functions. This simplifies the "opcua read ..." and "opcua write ..." logic. Another change allows the server's logger to be fully overriden. It changes the default timeout to 10 milliseconds and adds some functions to set the custom data type array on client and server. --- open62541.c.orig 2019-11-08 09:27:46.000000000 +0100 +++ open62541.c 2019-11-08 10:10:33.207053379 +0100 @@ -22437,7 +22437,7 @@ /* Main Server Loop */ /********************/ -#define UA_MAXTIMEOUT 50 /* Max timeout in ms between main-loop iterations */ +#define UA_MAXTIMEOUT 10 /* Max timeout in ms between main-loop iterations */ |
︙ | ︙ | |||
38 39 40 41 42 43 44 | res->value.data = NULL; + } else if(UA_Variant_isScalar(&res->value) && outDataType == &UA_TYPES[UA_TYPES_VARIANT]) { + memcpy(out, &res->value, sizeof(UA_Variant)); + UA_Variant_init(&res->value); } else { retval = UA_STATUSCODE_BADUNEXPECTEDERROR; } | | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | res->value.data = NULL; + } else if(UA_Variant_isScalar(&res->value) && outDataType == &UA_TYPES[UA_TYPES_VARIANT]) { + memcpy(out, &res->value, sizeof(UA_Variant)); + UA_Variant_init(&res->value); } else { retval = UA_STATUSCODE_BADUNEXPECTEDERROR; } @@ -51611,16 +51614,22 @@ static UA_StatusCode setDefaultConfig(UA_ServerConfig *conf) { + UA_Logger logger; + if (!conf) return UA_STATUSCODE_BADINVALIDARGUMENT; |
︙ | ︙ | |||
62 63 64 65 66 67 68 | /* --> Start setting the default static config <-- */ conf->nThreads = 1; - conf->logger = UA_Log_Stdout_; + conf->logger = logger; conf->shutdownDelay = 0.0; | | | | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | /* --> Start setting the default static config <-- */ conf->nThreads = 1; - conf->logger = UA_Log_Stdout_; + conf->logger = logger; conf->shutdownDelay = 0.0; @@ -56850,7 +56859,7 @@ time_t gmt, rawtime = time(NULL); struct tm ptm; - gmtime_s(&ptm, &rawtime); + ptm = *gmtime(&rawtime); // Request that mktime() looksup dst in timezone database ptm.tm_isdst = -1; gmt = mktime(&ptm); @@ -57935,3 +57944,17 @@ return connection; } + +UA_StatusCode +UA_Client_setCustomDataTypes(UA_Client *client, const UA_DataTypeArray *types) { + client->config.customDataTypes = types; + + return UA_STATUSCODE_GOOD; +} + +UA_StatusCode +UA_Server_setCustomDataTypes(UA_Server *server, const UA_DataTypeArray *types) { + server->config.customDataTypes = types; + + return UA_STATUSCODE_GOOD; +} --- open62541.h.orig 2019-11-08 09:27:46.000000000 +0100 +++ open62541.h 2019-11-08 10:09:12.150748976 +0100 @@ -95,7 +95,7 @@ * On Win32: Define ``UA_DYNAMIC_LINKING`` and ``UA_DYNAMIC_LINKING_EXPORT`` in * order to export symbols for a DLL. Define ``UA_DYNAMIC_LINKING`` only to * import symbols from a DLL.*/ -#define UA_DYNAMIC_LINKING +/* #undef UA_DYNAMIC_LINKING */ |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.c.
1 2 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software | | | 1 2 3 4 5 6 7 8 9 10 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software * Git-Revision: v1.0-29-g95b3deb6 */ /* * Copyright (C) 2014-2018 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the Mozilla Public |
︙ | ︙ | |||
905 906 907 908 909 910 911 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
3800 3801 3802 3803 3804 3805 3806 | UA_ReadEventDetails_decodeBinary(const UA_ByteString *src, size_t *offset, UA_ReadEventDetails *dst) { return UA_decodeBinary(src, offset, dst, &UA_TYPES[UA_TYPES_READEVENTDETAILS], NULL); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 | UA_ReadEventDetails_decodeBinary(const UA_ByteString *src, size_t *offset, UA_ReadEventDetails *dst) { return UA_decodeBinary(src, offset, dst, &UA_TYPES[UA_TYPES_READEVENTDETAILS], NULL); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
3974 3975 3976 3977 3978 3979 3980 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ _UA_BEGIN_DECLS #if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 6 # pragma GCC diagnostic push |
︙ | ︙ | |||
4376 4377 4378 4379 4380 4381 4382 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
10501 10502 10503 10504 10505 10506 10507 | UA_calcSizeBinary(const void *p, const UA_DataType *type) { return calcSizeBinaryJumpTable[type->typeKind](p, type); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 | UA_calcSizeBinary(const void *p, const UA_DataType *type) { return calcSizeBinaryJumpTable[type->typeKind](p, type); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ /* Boolean */ #define Boolean_members NULL /* SByte */ #define SByte_members NULL |
︙ | ︙ | |||
17912 17913 17914 17915 17916 17917 17918 | }, }; /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 | }, }; /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ /* SecureConversationMessageAbortBody */ static UA_DataTypeMember SecureConversationMessageAbortBody_members[2] = { { UA_TYPENAME("Error") /* .memberName */ UA_TYPES_UINT32, /* .memberTypeIndex */ |
︙ | ︙ | |||
43333 43334 43335 43336 43337 43338 43339 | 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; unsigned char * UA_unbase64(const unsigned char *src, size_t len, size_t *out_len) { | > | | 43333 43334 43335 43336 43337 43338 43339 43340 43341 43342 43343 43344 43345 43346 43347 43348 | 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; unsigned char * UA_unbase64(const unsigned char *src, size_t len, size_t *out_len) { // we need a minimum length if(len <= 2) { *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } const unsigned char *p = src; size_t pad1 = len % 4 || p[len - 1] == '='; size_t pad2 = pad1 && (len % 4 > 2 || p[len - 2] != '='); |
︙ | ︙ | |||
43357 43358 43359 43360 43361 43362 43363 43364 43365 43366 43367 43368 43369 43370 43371 43372 43373 | from_b64[p[i + 2]] << 6 | from_b64[p[i + 3]]; *pos++ = (unsigned char)(n >> 16); *pos++ = (unsigned char)(n >> 8 & 0xFF); *pos++ = (unsigned char)(n & 0xFF); } if(pad1) { uint32_t n = from_b64[p[last]] << 18 | from_b64[p[last + 1]] << 12; *pos++ = (unsigned char)(n >> 16); if(pad2) { n |= from_b64[p[last + 2]] << 6; *pos++ = (unsigned char)(n >> 8 & 0xFF); } } *out_len = (uintptr_t)(pos - str); return str; | > > > > > > > > > > | 43358 43359 43360 43361 43362 43363 43364 43365 43366 43367 43368 43369 43370 43371 43372 43373 43374 43375 43376 43377 43378 43379 43380 43381 43382 43383 43384 | from_b64[p[i + 2]] << 6 | from_b64[p[i + 3]]; *pos++ = (unsigned char)(n >> 16); *pos++ = (unsigned char)(n >> 8 & 0xFF); *pos++ = (unsigned char)(n & 0xFF); } if(pad1) { if (last + 1 >= len) { UA_free(str); *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } uint32_t n = from_b64[p[last]] << 18 | from_b64[p[last + 1]] << 12; *pos++ = (unsigned char)(n >> 16); if(pad2) { if (last + 2 >= len) { UA_free(str); *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } n |= from_b64[p[last + 2]] << 6; *pos++ = (unsigned char)(n >> 8 & 0xFF); } } *out_len = (uintptr_t)(pos - str); return str; |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.h.
1 2 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software | | | 1 2 3 4 5 6 7 8 9 10 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software * Git-Revision: v1.0-29-g95b3deb6 */ /* * Copyright (C) 2014-2018 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the Mozilla Public |
︙ | ︙ | |||
27 28 29 30 31 32 33 | /** * open62541 Version * ----------------- */ #define UA_OPEN62541_VER_MAJOR 1 #define UA_OPEN62541_VER_MINOR 0 #define UA_OPEN62541_VER_PATCH 0 | | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | /** * open62541 Version * ----------------- */ #define UA_OPEN62541_VER_MAJOR 1 #define UA_OPEN62541_VER_MINOR 0 #define UA_OPEN62541_VER_PATCH 0 #define UA_OPEN62541_VER_LABEL "-29-g95b3deb6" /* Release candidate label, etc. */ #define UA_OPEN62541_VER_COMMIT "v1.0-29-g95b3deb6" /** * Feature Options * --------------- * Changing the feature options has no effect on a pre-compiled library. */ #define UA_LOGLEVEL 300 |
︙ | ︙ | |||
13829 13830 13831 13832 13833 13834 13835 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
16492 16493 16494 16495 16496 16497 16498 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ _UA_BEGIN_DECLS #if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 6 # pragma GCC diagnostic push |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.pdf.
cannot compute difference between binary files