Update open62541 from 1.0.6 to 1.3.1. Remove all patches that have

been commited upstream.  New patches prevent fatal compiler warnings.
Do not install unrelated header files that are not used.  Currently
tests are not working reliably.  The 1.3 API is incompatible to 1.0
version.  Depending port misc/p5-OPCUA-Open62541 builds, but tests
fail.  Working around API incompatibilities, fixing bugs, and resolve
tests races will be done in tree.
OK sthen@
This commit is contained in:
bluhm 2022-06-08 22:25:29 +00:00
parent 51e11d1db6
commit 3f47fb4767
28 changed files with 379 additions and 610 deletions

View File

@ -1,11 +1,10 @@
COMMENT = library implementation of OPC UA
VERSION = 1.0.6
REVISION = 0
VERSION = 1.3.1
DISTNAME = open62541-${VERSION}
PKGNAME = open62541-${VERSION}
SHARED_LIBS = open62541 1.0
SHARED_LIBS = open62541 2.0
CATEGORIES = misc
@ -21,7 +20,7 @@ WANTLIB = c m mbedcrypto mbedtls mbedx509 pthread
MASTER_SITES = https://github.com/open62541/open62541/
MASTER_SITES0 = https://github.com/OPCFoundation/UA-Nodeset/archive/
DISTFILES = open62541-{archive/refs/tags/v}${VERSION}.tar.gz \
UA-1.04.5-2020-03-06.tar.gz:0
UA-1.04.10-2021-09-15.tar.gz:0
MODULES = devel/cmake
@ -53,8 +52,7 @@ FLAVORS = ns0_full
FLAVOR ?=
.if ${FLAVOR:Mns0_full}
CONFIGURE_ARGS += -DUA_NAMESPACE_ZERO=FULL \
-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON
CONFIGURE_ARGS += -DUA_NAMESPACE_ZERO=FULL
.else
CONFIGURE_ARGS += -DUA_NAMESPACE_ZERO=REDUCED
.endif

View File

@ -1,4 +1,4 @@
SHA256 (UA-1.04.5-2020-03-06.tar.gz) = KIty/GA+zomK1fXUBLBP7+EN5Puzx1apbXzINCtRgFM=
SHA256 (open62541-1.0.6.tar.gz) = KZlAAlwUkpUzBkq+AETVgF6lDVKzLQWtm8DmmWVpwqY=
SIZE (UA-1.04.5-2020-03-06.tar.gz) = 4053334
SIZE (open62541-1.0.6.tar.gz) = 2691627
SHA256 (UA-1.04.10-2021-09-15.tar.gz) = TaoMRz1MU01hSqnlSqhrcb7CREZnO550yF5a3SYkw5M=
SHA256 (open62541-1.3.1.tar.gz) = 9U0QMl/Qj8FQWuo32D2qCFkSomlSHm0Bi/xBp0S6V6o=
SIZE (UA-1.04.10-2021-09-15.tar.gz) = 5720040
SIZE (open62541-1.3.1.tar.gz) = 3886706

View File

@ -1,20 +1,9 @@
GCC 4.2.1 doesn't understand "-Wpedantic".
Move examples to the right place.
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -389,7 +389,7 @@ include(CompilerFlags)
if(NOT UA_COMPILE_AS_CXX AND (CMAKE_COMPILER_IS_GNUCC OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xClang"))
# Compiler
add_definitions(-std=c99 -pipe
- -Wall -Wextra -Wpedantic
+ -Wall -Wextra
-Wno-static-in-inline # clang doesn't like the use of static inline methods inside static inline methods
-Wno-overlength-strings # may happen in the nodeset compiler when complex values are directly encoded
-Wno-unused-parameter # some methods may require unused arguments to cast to a method pointer
@@ -1239,7 +1239,7 @@ if (UA_PACK_DEBIAN)
@@ -1695,7 +1695,7 @@ if(UA_PACK_DEBIAN)
"examples/nodeset"
"examples/pubsub")

View File

@ -1,247 +0,0 @@
https://github.com/open62541/open62541/commit/30ac5ddd892e6ce82bef4de7890f06854aca9736
https://github.com/open62541/open62541/commit/1654d021012b93ff669c022499fd80c47a73e72e
https://github.com/open62541/open62541/commit/f9ceec7be7940495cf2ee091bed1bb5acec74551
Index: arch/network_tcp.c
--- arch/network_tcp.c.orig
+++ arch/network_tcp.c
@@ -339,11 +339,18 @@ addServerSocket(ServerNetworkLayerTCP *layer, struct a
static UA_StatusCode
ServerNetworkLayerTCP_start(UA_ServerNetworkLayer *nl, const UA_String *customHostname) {
- UA_initialize_architecture_network();
+ UA_initialize_architecture_network();
ServerNetworkLayerTCP *layer = (ServerNetworkLayerTCP *)nl->handle;
/* Get addrinfo of the server and create server sockets */
+ char hostname[512];
+ if(customHostname->length) {
+ if(customHostname->length >= sizeof(hostname))
+ return UA_STATUSCODE_BADOUTOFMEMORY;
+ memcpy(hostname, customHostname->data, customHostname->length);
+ hostname[customHostname->length] = '\0';
+ }
char portno[6];
UA_snprintf(portno, 6, "%d", layer->port);
struct addrinfo hints, *res;
@@ -352,7 +359,8 @@ ServerNetworkLayerTCP_start(UA_ServerNetworkLayer *nl,
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE;
hints.ai_protocol = IPPROTO_TCP;
- if(UA_getaddrinfo(NULL, portno, &hints, &res) != 0)
+ if(UA_getaddrinfo(customHostname->length ? hostname : NULL,
+ portno, &hints, &res) != 0)
return UA_STATUSCODE_BADINTERNALERROR;
/* There might be serveral addrinfos (for different network cards,
@@ -442,7 +450,7 @@ ServerNetworkLayerTCP_listen(UA_ServerNetworkLayer *nl
struct sockaddr_storage remote;
socklen_t remote_size = sizeof(remote);
- UA_SOCKET newsockfd = UA_accept((UA_SOCKET)layer->serverSockets[i],
+ UA_SOCKET newsockfd = UA_accept(layer->serverSockets[i],
(struct sockaddr*)&remote, &remote_size);
if(newsockfd == UA_INVALID_SOCKET)
continue;
@@ -609,7 +617,6 @@ UA_StatusCode UA_ClientConnectionTCP_poll(UA_Client *c
(TCPClientConnection*) connection->handle;
UA_DateTime connStart = UA_DateTime_nowMonotonic();
- UA_SOCKET clientsockfd = connection->sockfd;
UA_ClientConfig *config = UA_Client_getConfig(client);
@@ -631,22 +638,22 @@ UA_StatusCode UA_ClientConnectionTCP_poll(UA_Client *c
/* Thus use a loop and retry until timeout is reached */
/* Get a socket */
- if(clientsockfd <= 0) {
- clientsockfd = UA_socket(tcpConnection->server->ai_family,
+ if(connection->sockfd == UA_INVALID_SOCKET) {
+ connection->sockfd = UA_socket(tcpConnection->server->ai_family,
tcpConnection->server->ai_socktype,
tcpConnection->server->ai_protocol);
- connection->sockfd = (UA_Int32)clientsockfd; /* cast for win32 */
+ if(connection->sockfd == UA_INVALID_SOCKET) {
+ UA_LOG_WARNING(&config->logger, UA_LOGCATEGORY_NETWORK,
+ "Could not create client socket: %s", strerror(UA_ERRNO));
+ ClientNetworkLayerTCP_close(connection);
+ return UA_STATUSCODE_BADDISCONNECT;
+ }
}
- if(clientsockfd == UA_INVALID_SOCKET) {
- UA_LOG_WARNING(&config->logger, UA_LOGCATEGORY_NETWORK,
- "Could not create client socket: %s", strerror(UA_ERRNO));
- ClientNetworkLayerTCP_close(connection);
- return UA_STATUSCODE_BADDISCONNECT;
- }
+
/* Non blocking connect to be able to timeout */
- if(UA_socket_set_nonblocking(clientsockfd) != UA_STATUSCODE_GOOD) {
+ if(UA_socket_set_nonblocking(connection->sockfd) != UA_STATUSCODE_GOOD) {
UA_LOG_WARNING(&config->logger, UA_LOGCATEGORY_NETWORK,
"Could not set the client socket to nonblocking");
ClientNetworkLayerTCP_close(connection);
@@ -654,7 +661,7 @@ UA_StatusCode UA_ClientConnectionTCP_poll(UA_Client *c
}
/* Non blocking connect */
- int error = UA_connect(clientsockfd, tcpConnection->server->ai_addr,
+ int error = UA_connect(connection->sockfd, tcpConnection->server->ai_addr,
tcpConnection->server->ai_addrlen);
if ((error == -1) && (UA_ERRNO != UA_ERR_CONNECTION_PROGRESS)) {
@@ -686,7 +693,7 @@ UA_StatusCode UA_ClientConnectionTCP_poll(UA_Client *c
break;
_os_sleep(&time,&sig);
- error = connect(clientsockfd, tcpConnection->server->ai_addr,
+ error = connect(connection->sockfd, tcpConnection->server->ai_addr,
tcpConnection->server->ai_addrlen);
if ((error == -1 && UA_ERRNO == EISCONN) || (error == 0))
resultsize = 1;
@@ -697,26 +704,25 @@ UA_StatusCode UA_ClientConnectionTCP_poll(UA_Client *c
#else
fd_set fdset;
FD_ZERO(&fdset);
- UA_fd_set(clientsockfd, &fdset);
+ UA_fd_set(connection->sockfd, &fdset);
UA_UInt32 timeout_usec = (tcpConnection->timeout - timeSinceStart)
* 1000;
struct timeval tmptv = { (long int) (timeout_usec / 1000000),
(int) (timeout_usec % 1000000) };
- int resultsize = UA_select((UA_Int32) (clientsockfd + 1), NULL, &fdset,
- NULL, &tmptv);
+ int resultsize = UA_select((UA_Int32) (connection->sockfd + 1), NULL,
+ &fdset, NULL, &tmptv);
#endif
if (resultsize == 1) {
/* Windows does not have any getsockopt equivalent and it is not needed there */
#ifdef _WIN32
- connection->sockfd = clientsockfd;
connection->state = UA_CONNECTION_ESTABLISHED;
return UA_STATUSCODE_GOOD;
#else
OPTVAL_TYPE so_error;
socklen_t len = sizeof so_error;
- int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error,
+ int ret = UA_getsockopt(connection->sockfd, SOL_SOCKET, SO_ERROR, &so_error,
&len);
if (ret != 0 || so_error != 0) {
@@ -765,6 +771,7 @@ UA_ClientConnectionTCP_init(UA_ConnectionConfig config
connection.state = UA_CONNECTION_OPENING;
connection.config = config;
+ connection.sockfd = UA_INVALID_SOCKET;
connection.send = connection_write;
connection.recv = connection_recv;
connection.close = ClientNetworkLayerTCP_close;
@@ -775,6 +782,7 @@ UA_ClientConnectionTCP_init(UA_ConnectionConfig config
TCPClientConnection *tcpClientConnection = (TCPClientConnection*) UA_malloc(
sizeof(TCPClientConnection));
+ memset(tcpClientConnection, 0, sizeof(TCPClientConnection));
connection.handle = (void*) tcpClientConnection;
tcpClientConnection->timeout = timeout;
UA_String hostnameString = UA_STRING_NULL;
@@ -826,6 +834,7 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
memset(&connection, 0, sizeof(UA_Connection));
connection.state = UA_CONNECTION_CLOSED;
connection.config = config;
+ connection.sockfd = UA_INVALID_SOCKET;
connection.send = connection_write;
connection.recv = connection_recv;
connection.close = ClientNetworkLayerTCP_close;
@@ -874,17 +883,16 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
UA_Boolean connected = false;
UA_DateTime dtTimeout = timeout * UA_DATETIME_MSEC;
UA_DateTime connStart = UA_DateTime_nowMonotonic();
- UA_SOCKET clientsockfd;
/* On linux connect may immediately return with ECONNREFUSED but we still
* want to try to connect. So use a loop and retry until timeout is
* reached. */
do {
/* Get a socket */
- clientsockfd = UA_socket(server->ai_family,
+ connection.sockfd = UA_socket(server->ai_family,
server->ai_socktype,
server->ai_protocol);
- if(clientsockfd == UA_INVALID_SOCKET) {
+ if(connection.sockfd == UA_INVALID_SOCKET) {
UA_LOG_SOCKET_ERRNO_WRAP(UA_LOG_WARNING(logger, UA_LOGCATEGORY_NETWORK,
"Could not create client socket: %s", errno_str));
UA_freeaddrinfo(server);
@@ -894,10 +902,9 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
connection.state = UA_CONNECTION_OPENING;
/* Connect to the server */
- connection.sockfd = clientsockfd;
/* Non blocking connect to be able to timeout */
- if (UA_socket_set_nonblocking(clientsockfd) != UA_STATUSCODE_GOOD) {
+ if (UA_socket_set_nonblocking(connection.sockfd) != UA_STATUSCODE_GOOD) {
UA_LOG_WARNING(logger, UA_LOGCATEGORY_NETWORK,
"Could not set the client socket to nonblocking");
ClientNetworkLayerTCP_close(&connection);
@@ -906,7 +913,8 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
}
/* Non blocking connect */
- error = UA_connect(clientsockfd, server->ai_addr, (socklen_t)server->ai_addrlen);
+ error = UA_connect(connection.sockfd, server->ai_addr,
+ (socklen_t) server->ai_addrlen);
if ((error == -1) && (UA_ERRNO != UA_ERR_CONNECTION_PROGRESS)) {
ClientNetworkLayerTCP_close(&connection);
@@ -940,7 +948,7 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
break;
_os_sleep(&time,&sig);
- error = connect(clientsockfd, server->ai_addr, server->ai_addrlen);
+ error = connect(connection.sockfd, server->ai_addr, server->ai_addrlen);
if ((error == -1 && UA_ERRNO == EISCONN) || (error == 0))
resultsize = 1;
if (error == -1 && UA_ERRNO != EALREADY && UA_ERRNO != EINPROGRESS)
@@ -950,12 +958,13 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
#else
fd_set fdset;
FD_ZERO(&fdset);
- UA_fd_set(clientsockfd, &fdset);
+ UA_fd_set(connection.sockfd, &fdset);
UA_DateTime timeout_usec = (dtTimeout - timeSinceStart) / UA_DATETIME_USEC;
struct timeval tmptv = {(long int) (timeout_usec / 1000000),
(int) (timeout_usec % 1000000)};
- int resultsize = UA_select((UA_Int32)(clientsockfd + 1), NULL, &fdset, NULL, &tmptv);
+ int resultsize = UA_select((UA_Int32)(connection.sockfd + 1), NULL,
+ &fdset, NULL, &tmptv);
#endif
if(resultsize == 1) {
@@ -968,7 +977,7 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
OPTVAL_TYPE so_error;
socklen_t len = sizeof so_error;
- int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error, &len);
+ int ret = UA_getsockopt(connection.sockfd, SOL_SOCKET, SO_ERROR, &so_error, &len);
if (ret != 0 || so_error != 0) {
/* on connection refused we should still try to connect */
@@ -1013,7 +1022,7 @@ UA_ClientConnectionTCP(UA_ConnectionConfig config, con
/* We are connected. Reset socket to blocking */
- if(UA_socket_set_blocking(clientsockfd) != UA_STATUSCODE_GOOD) {
+ if(UA_socket_set_blocking(connection.sockfd) != UA_STATUSCODE_GOOD) {
UA_LOG_WARNING(logger, UA_LOGCATEGORY_NETWORK,
"Could not set the client socket to blocking");
ClientNetworkLayerTCP_close(&connection);

View File

@ -1,15 +0,0 @@
This was needed for OpenBSD 5.8 with gcc version 4.8.4
https://open62541.org/doc/1.0/building.html?highlight=openbsd#building-on-openbsd
Index: arch/posix/CMakeLists.txt
--- arch/posix/CMakeLists.txt.orig
+++ arch/posix/CMakeLists.txt
@@ -10,7 +10,7 @@ if (${_index} GREATER -1 OR "${UA_ARCHITECTURE}" STREQ
if("${UA_ARCHITECTURE}" STREQUAL "posix")
- if(NOT CYGWIN AND NOT QNXNTO AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD"))
+ if(NOT CYGWIN AND NOT QNXNTO)
ua_architecture_add_definitions(-Wshadow -Wconversion -fvisibility=hidden -fPIC)
endif()

View File

@ -1,18 +0,0 @@
https://github.com/open62541/open62541/commit/7453262ccf8b26e622c4afa6ab5facfc42962663
Index: include/open62541/server.h
--- include/open62541/server.h.orig
+++ include/open62541/server.h
@@ -713,7 +713,11 @@ typedef struct {
const UA_NodeId *targetParentNodeId,
const UA_NodeId *referenceTypeId,
UA_NodeId *targetNodeId);
- } UA_GlobalNodeLifecycle;
+} UA_GlobalNodeLifecycle;
+
+void UA_EXPORT
+UA_Server_setAdminSessionContext(UA_Server *server,
+ void *context);
typedef struct {
/* Can be NULL. May replace the nodeContext */

View File

@ -1,13 +0,0 @@
https://github.com/open62541/open62541/commit/f05bafc25d332d4571b2e42fb42221c2ec3cc98c
Index: plugins/ua_accesscontrol_default.c
--- plugins/ua_accesscontrol_default.c.orig
+++ plugins/ua_accesscontrol_default.c
@@ -210,6 +210,7 @@ static void deleteMembers_default(UA_AccessControl *ac
if(context->usernamePasswordLoginSize > 0)
UA_free(context->usernamePasswordLogin);
UA_free(ac->context);
+ ac->context = NULL;
}
}

View File

@ -1,63 +0,0 @@
The user callback should always be called, also in case of an error.
https://github.com/open62541/open62541/pull/3691
Although this pull request was not merged, the new callback semantics
has been implemented during refactoring in AttributeReadCallback().
https://github.com/open62541/open62541/commit/9e193c3a893765db085ccc75e9d3929b6f7b8f82
https://github.com/open62541/open62541/commit/b172ae033adb5dd2aa6766b9cd6af8fc8c91453c
Index: src/client/ua_client_highlevel.c
--- src/client/ua_client_highlevel.c.orig
+++ src/client/ua_client_highlevel.c
@@ -786,18 +786,21 @@ void ValueAttributeRead(UA_Client *client, void *userd
}
}
- /* Could not process, delete the callback anyway */
- if(!done)
+ /* Could not process, run the callback anyway */
+ if(!done) {
UA_LOG_INFO(&client->config.logger, UA_LOGCATEGORY_CLIENT,
"Cannot process the response to the async read "
"request %u", requestId);
+ cc->callback(client, userdata, requestId, NULL);
+ }
LIST_REMOVE(cc, pointers);
UA_free(cc);
}
/*Read Attributes*/
-UA_StatusCode __UA_Client_readAttribute_async(UA_Client *client,
+UA_StatusCode
+__UA_Client_readAttribute_async(UA_Client *client,
const UA_NodeId *nodeId, UA_AttributeId attributeId,
const UA_DataType *outDataType, UA_ClientAsyncServiceCallback callback,
void *userdata, UA_UInt32 *reqId) {
@@ -810,20 +813,21 @@ UA_StatusCode __UA_Client_readAttribute_async(UA_Clien
request.nodesToRead = &item;
request.nodesToReadSize = 1;
- __UA_Client_AsyncService(client, &request, &UA_TYPES[UA_TYPES_READREQUEST],
- ValueAttributeRead, &UA_TYPES[UA_TYPES_READRESPONSE],
- userdata, reqId);
-
CustomCallback *cc = (CustomCallback*) UA_malloc(sizeof(CustomCallback));
if (!cc)
return UA_STATUSCODE_BADOUTOFMEMORY;
cc->callback = callback;
- cc->callbackId = *reqId;
cc->attributeId = attributeId;
cc->outDataType = outDataType;
+ __UA_Client_AsyncService(client, &request, &UA_TYPES[UA_TYPES_READREQUEST],
+ ValueAttributeRead, &UA_TYPES[UA_TYPES_READRESPONSE],
+ userdata, &cc->callbackId);
+
LIST_INSERT_HEAD(&client->customCallbacks, cc, pointers);
+ if (reqId != NULL)
+ *reqId = cc->callbackId;
return UA_STATUSCODE_GOOD;
}

View File

@ -1,21 +0,0 @@
Newer versions added this check in __MonitoredItems_create_handler()
which is called ua_MonitoredItems_create() in master. It prevents
a use after free in the monitored items delete callback.
https://github.com/open62541/open62541/commit/a89d04e1c7c70fbb9745d7875d8b94eb2a1aa53e
Index: src/client/ua_client_subscriptions.c
--- src/client/ua_client_subscriptions.c.orig
+++ src/client/ua_client_subscriptions.c
@@ -252,6 +252,12 @@ __UA_Client_MonitoredItems_create(UA_Client *client,
/* Call the service */
__UA_Client_Service(client, request, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST],
response, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]);
+
+ /* __UA_Client_Service might free Subscription, check if it still exists */
+ sub = findSubscription(client, request->subscriptionId);
+ if(!sub)
+ goto cleanup;
+
if(response->responseHeader.serviceResult != UA_STATUSCODE_GOOD)
goto cleanup;

View File

@ -1,14 +0,0 @@
https://github.com/open62541/open62541/commit/ba14327eac5489f95864d6208bc46516650db537
Index: src/server/ua_services_attribute.c
--- src/server/ua_services_attribute.c.orig
+++ src/server/ua_services_attribute.c
@@ -681,6 +681,8 @@ compatibleValueRankValue(UA_Int32 valueRank, const UA_
return true;
case UA_VALUERANK_SCALAR: /* The value is a scalar */
return (arrayDims == 0);
+ case UA_VALUERANK_ONE_OR_MORE_DIMENSIONS:
+ return (arrayDims >= 1);
default:
break;
}

View File

@ -1,18 +0,0 @@
https://github.com/open62541/open62541/commit/7453262ccf8b26e622c4afa6ab5facfc42962663
Index: src/server/ua_services_nodemanagement.c
--- src/server/ua_services_nodemanagement.c.orig
+++ src/server/ua_services_nodemanagement.c
@@ -2178,6 +2178,12 @@ UA_Server_setMethodNode_callback(UA_Server *server,
/* Lifecycle Management */
/************************/
+void UA_EXPORT
+UA_Server_setAdminSessionContext(UA_Server *server,
+ void *context) {
+ server->adminSession.sessionHandle = context;
+}
+
static UA_StatusCode
setNodeTypeLifecycle(UA_Server *server, UA_Session *session,
UA_Node* node, UA_NodeTypeLifecycle *lifecycle) {

View File

@ -1,14 +0,0 @@
https://github.com/open62541/open62541/commit/a174f9b8cae64b1f38fa84fc6153d1fa8d9b05bf
Index: src/ua_types_encoding_binary.c
--- src/ua_types_encoding_binary.c.orig
+++ src/ua_types_encoding_binary.c
@@ -732,6 +732,8 @@ DECODE_BINARY(ExpandedNodeId) {
/* QualifiedName */
ENCODE_BINARY(QualifiedName) {
status ret = ENCODE_DIRECT(&src->namespaceIndex, UInt16);
+ if(ret != UA_STATUSCODE_GOOD)
+ return ret;
ret |= ENCODE_DIRECT(&src->name, String);
return ret;
}

View File

@ -1,39 +0,0 @@
https://github.com/open62541/open62541/commit/71738ec1ed9f1ba32bdb52650a103d72cb8f6d1d
Index: tests/CMakeLists.txt
--- tests/CMakeLists.txt.orig
+++ tests/CMakeLists.txt
@@ -1,7 +1,7 @@
# Load CMake Packages
find_package(Check REQUIRED)
set(LIBS ${CHECK_LIBRARIES} ${open62541_LIBRARIES})
-if(NOT WIN32 AND NOT APPLE)
+if(NOT WIN32 AND NOT APPLE AND NOT (CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD"))
list(APPEND LIBS subunit)
endif()
@@ -11,11 +11,6 @@ if(NOT MSVC AND UA_ENABLE_UNIT_TESTS_MEMCHECK)
find_package(Valgrind REQUIRED)
endif()
-if(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD")
- link_directories(/usr/local/lib)
- add_definitions(-Wno-gnu-zero-variadic-macro-arguments)
-endif()
-
if(APPLE)
# CLang on Apple complains about many cases like this:
# /Users/travis/build/open62541/open62541/tests/check_chunking.c:148:22: warning: implicit conversion changes signedness: 'size_t' (aka 'unsigned long') to 'intmax_t' (aka 'long') [-Wsign-conversion]
@@ -36,6 +31,12 @@ include_directories("${PROJECT_BINARY_DIR}")
if(UA_ENABLE_ENCRYPTION)
# mbedtls includes
include_directories(${MBEDTLS_INCLUDE_DIRS})
+endif()
+
+if(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD")
+ include_directories(AFTER /usr/local/include)
+ link_directories(AFTER /usr/local/lib)
+ add_definitions(-Wno-gnu-zero-variadic-macro-arguments)
endif()
add_definitions(-DUA_sleep_ms=UA_comboSleep)

View File

@ -0,0 +1,15 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/check_securechannel.c
--- tests/check_securechannel.c.orig
+++ tests/check_securechannel.c
@@ -365,7 +365,7 @@ START_TEST(Securechannel_sendAsymmetricOPNMessage_extr
if(extraPadding) {
extraPaddingByte = paddingByte;
paddingByte = sentData.data[sentData.length - keySizes.asym_lcl_sig_size - 2];
- paddingSize = (extraPaddingByte << 8u) + paddingByte;
+ paddingSize = ((size_t)extraPaddingByte << 8u) + paddingByte;
paddingSize += 1;
}

View File

@ -0,0 +1,15 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/check_types_builtin.c
--- tests/check_types_builtin.c.orig
+++ tests/check_types_builtin.c
@@ -195,7 +195,7 @@ END_TEST
START_TEST(UA_Int64_decodeShallRespectSign) {
// given
UA_ByteString rawMessage;
- UA_UInt64 expectedVal = ((UA_UInt64)0xFF) << 56;
+ UA_Int64 expectedVal = ((UA_Int64)0xFF) << 56;
UA_Byte mem[8] = { 00, 00, 00, 00, 0x00, 0x00, 0x00, 0xFF };
rawMessage.data = mem;
rawMessage.length = 8;

View File

@ -0,0 +1,21 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/1d727e5b40681a1b287749e9acde5269607dc4db
Index: tests/client/check_client_encryption.c
--- tests/client/check_client_encryption.c.orig
+++ tests/client/check_client_encryption.c
@@ -90,12 +90,12 @@ START_TEST(encryption_reconnect_session) {
UA_ByteString certificate;
certificate.length = CERT_DER_LENGTH;
certificate.data = CERT_DER_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_DER_LENGTH;
privateKey.data = KEY_DER_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* Secure client initialization */
client = UA_Client_new();

View File

@ -0,0 +1,36 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/encryption/check_encryption_aes128sha256rsaoaep.c
--- tests/encryption/check_encryption_aes128sha256rsaoaep.c.orig
+++ tests/encryption/check_encryption_aes128sha256rsaoaep.c
@@ -107,12 +107,12 @@ START_TEST(encryption_connect) {
UA_ByteString certificate;
certificate.length = CERT_DER_LENGTH;
certificate.data = CERT_DER_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_DER_LENGTH;
privateKey.data = KEY_DER_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability
@@ -188,12 +188,12 @@ START_TEST(encryption_connect_pem) {
UA_ByteString certificate;
certificate.length = CERT_PEM_LENGTH;
certificate.data = CERT_PEM_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_PEM_LENGTH;
privateKey.data = KEY_PEM_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability

View File

@ -0,0 +1,36 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/encryption/check_encryption_basic128rsa15.c
--- tests/encryption/check_encryption_basic128rsa15.c.orig
+++ tests/encryption/check_encryption_basic128rsa15.c
@@ -104,12 +104,12 @@ START_TEST(encryption_connect) {
UA_ByteString certificate;
certificate.length = CERT_DER_LENGTH;
certificate.data = CERT_DER_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_DER_LENGTH;
privateKey.data = KEY_DER_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability
@@ -185,12 +185,12 @@ START_TEST(encryption_connect_pem) {
UA_ByteString certificate;
certificate.length = CERT_PEM_LENGTH;
certificate.data = CERT_PEM_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_PEM_LENGTH;
privateKey.data = KEY_PEM_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability

View File

@ -0,0 +1,36 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/encryption/check_encryption_basic256.c
--- tests/encryption/check_encryption_basic256.c.orig
+++ tests/encryption/check_encryption_basic256.c
@@ -107,12 +107,12 @@ START_TEST(encryption_connect) {
UA_ByteString certificate;
certificate.length = CERT_DER_LENGTH;
certificate.data = CERT_DER_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_DER_LENGTH;
privateKey.data = KEY_DER_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability
@@ -188,12 +188,12 @@ START_TEST(encryption_connect_pem) {
UA_ByteString certificate;
certificate.length = CERT_PEM_LENGTH;
certificate.data = CERT_PEM_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_PEM_LENGTH;
privateKey.data = KEY_PEM_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability

View File

@ -0,0 +1,36 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/encryption/check_encryption_basic256sha256.c
--- tests/encryption/check_encryption_basic256sha256.c.orig
+++ tests/encryption/check_encryption_basic256sha256.c
@@ -107,12 +107,12 @@ START_TEST(encryption_connect) {
UA_ByteString certificate;
certificate.length = CERT_DER_LENGTH;
certificate.data = CERT_DER_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_DER_LENGTH;
privateKey.data = KEY_DER_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability
@@ -188,12 +188,12 @@ START_TEST(encryption_connect_pem) {
UA_ByteString certificate;
certificate.length = CERT_PEM_LENGTH;
certificate.data = CERT_PEM_DATA;
- ck_assert_int_ne(certificate.length, 0);
+ ck_assert_uint_ne(certificate.length, 0);
UA_ByteString privateKey;
privateKey.length = KEY_PEM_LENGTH;
privateKey.data = KEY_PEM_DATA;
- ck_assert_int_ne(privateKey.length, 0);
+ ck_assert_uint_ne(privateKey.length, 0);
/* The Get endpoint (discovery service) is done with
* security mode as none to see the server's capability

View File

@ -0,0 +1,37 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/ec42e5c65f9211eba13a5346822ab017b617bfff
Index: tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c
--- tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c.orig
+++ tests/nodeset-compiler/check_nodeset_compiler_testnodeset.c
@@ -112,26 +112,26 @@ START_TEST(readValueRank) {
ck_assert_int_eq(rank, -2);
UA_Variant_init(&dims);
UA_Server_readArrayDimensions(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10002), &dims);
- ck_assert_int_eq(dims.arrayLength, 0);
+ ck_assert_uint_eq(dims.arrayLength, 0);
UA_Variant_clear(&dims);
// 1-dim
UA_Server_readValueRank(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10007), &rank);
ck_assert_int_eq(rank, 1);
UA_Server_readArrayDimensions(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10007), &dims);
- ck_assert_int_eq(dims.arrayLength, 1);
+ ck_assert_uint_eq(dims.arrayLength, 1);
ck_assert_int_eq(*((UA_UInt32 *)dims.data), 0);
UA_Variant_clear(&dims);
UA_Server_readValueRank(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10004), &rank);
ck_assert_int_eq(rank, 1);
UA_Server_readArrayDimensions(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10004), &dims);
- ck_assert_int_eq(dims.arrayLength, 1);
+ ck_assert_uint_eq(dims.arrayLength, 1);
ck_assert_int_eq(*((UA_UInt32 *)dims.data), 4);
UA_Variant_clear(&dims);
// 2-dim
UA_Server_readValueRank(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10006), &rank);
ck_assert_int_eq(rank, 2);
UA_Server_readArrayDimensions(server, UA_NODEID_NUMERIC(testNamespaceIndex, 10006), &dims);
- ck_assert_int_eq(dims.arrayLength, 2);
+ ck_assert_uint_eq(dims.arrayLength, 2);
UA_UInt32 *dimensions = (UA_UInt32 *)dims.data;
ck_assert_int_eq(dimensions[0], 2);
ck_assert_int_eq(dimensions[1], 2);

View File

@ -0,0 +1,42 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/ec42e5c65f9211eba13a5346822ab017b617bfff
Index: tests/server/check_interfaces.c
--- tests/server/check_interfaces.c.orig
+++ tests/server/check_interfaces.c
@@ -56,7 +56,7 @@ START_TEST(check_interface_instantiation) {
UA_BrowsePathResult bpr = UA_Server_translateBrowsePathToNodeIds(server, &bp);
ck_assert_int_eq(bpr.statusCode, UA_STATUSCODE_GOOD);
- ck_assert_int_eq(bpr.targetsSize, 1);
+ ck_assert_uint_eq(bpr.targetsSize, 1);
const UA_NodeId objectWithInterfacesId = bpr.targets->targetId.nodeId;
UA_BrowsePathResult_clear(&bpr);
@@ -73,7 +73,7 @@ START_TEST(check_interface_instantiation) {
UA_BrowseResult br = UA_Server_browse(server, 1000, &bd);
ck_assert_int_eq(br.statusCode, UA_STATUSCODE_GOOD);
- ck_assert_int_gt(br.referencesSize, 0);
+ ck_assert_uint_gt(br.referencesSize, 0);
bool found = false;
for (size_t i = 0; i < br.referencesSize; ++i) {
@@ -150,7 +150,7 @@ START_TEST(check_interface_instantiation) {
bpr = UA_Server_translateBrowsePathToNodeIds(server, &bp);
ck_assert_int_eq(bpr.statusCode, UA_STATUSCODE_GOOD);
- ck_assert_int_eq(bpr.targetsSize, 1);
+ ck_assert_uint_eq(bpr.targetsSize, 1);
const UA_NodeId baseObjectWithInterfaceId = bpr.targets->targetId.nodeId;
UA_BrowsePathResult_clear(&bpr);
@@ -164,7 +164,7 @@ START_TEST(check_interface_instantiation) {
br = UA_Server_browse(server, 1000, &bd);
ck_assert_int_eq(br.statusCode, UA_STATUSCODE_GOOD);
- ck_assert_int_gt(br.referencesSize, 0);
+ ck_assert_uint_gt(br.referencesSize, 0);
found = false;
for (size_t i = 0; i < br.referencesSize; ++i) {

View File

@ -1,14 +0,0 @@
https://github.com/open62541/open62541/commit/30ac5ddd892e6ce82bef4de7890f06854aca9736
Index: tests/server/check_server_userspace.c
--- tests/server/check_server_userspace.c.orig
+++ tests/server/check_server_userspace.c
@@ -133,7 +133,7 @@ START_TEST(Server_forEachChildNodeCall) {
START_TEST(Server_set_customHostname) {
- UA_String customHost = UA_STRING("fancy-host");
+ UA_String customHost = UA_STRING("localhost");
UA_UInt16 port = 10042;
UA_Server *server = UA_Server_new();

View File

@ -0,0 +1,24 @@
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/server/check_services_attributes.c
--- tests/server/check_services_attributes.c.orig
+++ tests/server/check_services_attributes.c
@@ -199,7 +199,7 @@ START_TEST(ReadSingleServerAttribute) {
UA_DataValue resp = UA_Server_read(server, &rvi, UA_TIMESTAMPSTORETURN_BOTH);
ck_assert_int_eq(resp.status, UA_STATUSCODE_GOOD);
- ck_assert_int_eq(0, resp.value.arrayLength);
+ ck_assert_uint_eq(0, resp.value.arrayLength);
ck_assert_int_eq(resp.serverTimestamp, UA_DateTime_now());
ck_assert_int_eq(resp.sourceTimestamp, UA_DateTime_now());
UA_DataValue_clear(&resp);
@@ -825,7 +825,7 @@ START_TEST(WriteSingleAttributeValueWithServerTimestam
ck_assert(resp.hasValue);
ck_assert_int_eq(20, *(UA_Int32*)resp.value.data);
ck_assert(resp.hasServerTimestamp);
- ck_assert_uint_eq(resp.serverTimestamp, UA_DateTime_now());
+ ck_assert_int_eq(resp.serverTimestamp, UA_DateTime_now());
UA_DataValue_clear(&resp);
} END_TEST

View File

@ -1,83 +1,15 @@
https://github.com/open62541/open62541/commit/7453262ccf8b26e622c4afa6ab5facfc42962663
https://github.com/open62541/open62541/commit/ba14327eac5489f95864d6208bc46516650db537
Fix -Wsign-conversion compiler error.
https://github.com/open62541/open62541/commit/4a0f9795165aa08aa4cad473bf5e066ab33d31fd
Index: tests/server/check_services_nodemanagement.c
--- tests/server/check_services_nodemanagement.c.orig
+++ tests/server/check_services_nodemanagement.c
@@ -13,12 +13,16 @@
#include <time.h>
@@ -596,7 +596,7 @@ START_TEST(ObjectWithDynamicVariableChild) {
static UA_Server *server = NULL;
+static void *sessionCalled = (void *)1;
+static void *nodeCalled = (void *)2;
static UA_Int32 handleCalled = 0;
UA_BrowsePathResult bpr = UA_Server_translateBrowsePathToNodeIds(server, &bp);
static UA_StatusCode
globalInstantiationMethod(UA_Server *server_,
const UA_NodeId *sessionId, void *sessionContext,
const UA_NodeId *nodeId, void **nodeContext) {
+ sessionCalled = sessionContext;
+ nodeCalled = *nodeContext;
handleCalled++;
return UA_STATUSCODE_GOOD;
}
@@ -34,6 +38,7 @@ static void setup(void) {
lifecycle.createOptionalChild = NULL;
lifecycle.generateChildNodeId = NULL;
config->nodeLifecycle = lifecycle;
+ UA_Server_setAdminSessionContext(server, (void *)0x3);
}
- ck_assert_int_eq(bpr.targetsSize, 1);
+ ck_assert_uint_eq(bpr.targetsSize, 1);
static void teardown(void) {
@@ -51,10 +56,42 @@ START_TEST(AddVariableNode) {
UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME(1, "the answer");
UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER);
UA_NodeId parentReferenceNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES);
+ ck_assert_ptr_eq(sessionCalled, (void *)1);
+ ck_assert_ptr_eq(nodeCalled, (void *)2);
UA_StatusCode res =
UA_Server_addVariableNode(server, myIntegerNodeId, parentNodeId,
parentReferenceNodeId, myIntegerName,
UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE),
+ attr, (void *)4, NULL);
+ ck_assert_int_eq(UA_STATUSCODE_GOOD, res);
+ ck_assert_ptr_eq(sessionCalled, (void *)3);
+ ck_assert_ptr_eq(nodeCalled, (void *)4);
+} END_TEST
+
+START_TEST(AddVariableNode_ValueRankZero) {
+ UA_VariableAttributes attr = UA_VariableAttributes_default;
+ attr.displayName = UA_LOCALIZEDTEXT("en-US", "Array ValueRank 0");
+ attr.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE;
+
+ /* Set the variable value constraints */
+ attr.dataType = UA_TYPES[UA_TYPES_DOUBLE].typeId;
+ attr.valueRank = UA_VALUERANK_ONE_OR_MORE_DIMENSIONS;
+
+ /* Set the value */
+ UA_UInt32 arrayDims[1] = {2};
+ UA_Double zero[2] = {0.0, 0.0};
+ UA_Variant_setArray(&attr.value, zero, 2, &UA_TYPES[UA_TYPES_DOUBLE]);
+ attr.value.arrayDimensions = arrayDims;
+ attr.value.arrayDimensionsSize = 1;
+
+ UA_NodeId myNodeId = UA_NODEID_STRING(1, "array0");
+ UA_QualifiedName myName = UA_QUALIFIEDNAME(1, "array0");
+ UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER);
+ UA_NodeId parentReferenceNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES);
+ UA_StatusCode res =
+ UA_Server_addVariableNode(server, myNodeId, parentNodeId,
+ parentReferenceNodeId, myName,
+ UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE),
attr, NULL, NULL);
ck_assert_int_eq(UA_STATUSCODE_GOOD, res);
} END_TEST
@@ -593,6 +630,7 @@ int main(void) {
TCase *tc_addnodes = tcase_create("addnodes");
tcase_add_checked_fixture(tc_addnodes, setup, teardown);
tcase_add_test(tc_addnodes, AddVariableNode);
+ tcase_add_test(tc_addnodes, AddVariableNode_ValueRankZero);
tcase_add_test(tc_addnodes, AddVariableNode_ExtensionObject);
tcase_add_test(tc_addnodes, InstantiateVariableTypeNode);
tcase_add_test(tc_addnodes, InstantiateVariableTypeNodeWrongDims);
UA_WriteValue wv;
UA_WriteValue_init(&wv);

View File

@ -1,14 +0,0 @@
https://github.com/open62541/open62541/commit/1654d021012b93ff669c022499fd80c47a73e72e
Index: tests/testing-plugins/testing_networklayers.c
--- tests/testing-plugins/testing_networklayers.c.orig
+++ tests/testing-plugins/testing_networklayers.c
@@ -61,7 +61,7 @@ UA_Connection createDummyConnection(size_t sendBufferS
c.state = UA_CONNECTION_ESTABLISHED;
c.config = UA_ConnectionConfig_default;
c.channel = NULL;
- c.sockfd = 0;
+ c.sockfd = UA_INVALID_SOCKET;
c.handle = NULL;
c.incompleteChunk = UA_BYTESTRING_NULL;
c.getSendBuffer = dummyGetSendBuffer;

View File

@ -85,8 +85,6 @@ share/open62541/tools/ua-nodeset/FDI/OpcUaFdiPart5Model.xml
share/open62541/tools/ua-nodeset/FDI/OpcUaFdiPart7Model.csv
share/open62541/tools/ua-nodeset/FDI/OpcUaFdiPart7Model.xml
share/open62541/tools/ua-nodeset/FDT/
share/open62541/tools/ua-nodeset/FDT/NodeIds.csv
share/open62541/tools/ua-nodeset/FDT/Opc.Ua.FDT.NodeSet2.xml
share/open62541/tools/ua-nodeset/GDS/
share/open62541/tools/ua-nodeset/GDS/Opc.Ua.Gds.Classes.cs
share/open62541/tools/ua-nodeset/GDS/Opc.Ua.Gds.Constants.cs
@ -140,16 +138,6 @@ share/open62541/tools/ua-nodeset/MachineVision/
share/open62541/tools/ua-nodeset/MachineVision/NodeIds.csv
share/open62541/tools/ua-nodeset/MachineVision/Opc.Ua.MachineVision.NodeSet2.xml
share/open62541/tools/ua-nodeset/PLCopen/
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.Classes.cs
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.Constants.cs
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.DataTypes.cs
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.PredefinedNodes.uanodes
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.PredefinedNodes.xml
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.Types.bsd
share/open62541/tools/ua-nodeset/PLCopen/Opc.Ua.Plc.Types.xsd
share/open62541/tools/ua-nodeset/PLCopen/OpcUaPLCopenModel.csv
share/open62541/tools/ua-nodeset/PLCopen/OpcUaPLCopenModel.xml
share/open62541/tools/ua-nodeset/POWERLINK/
share/open62541/tools/ua-nodeset/POWERLINK/Opc.Ua.POWERLINK.NodeIds.csv
share/open62541/tools/ua-nodeset/POWERLINK/Opc.Ua.POWERLINK.NodeSet2.xml

View File

@ -1,35 +1,35 @@
include/aa_tree.h
@comment include/ms_stdint.h
include/open62541/
include/open62541/architecture_base.h
include/open62541/architecture_definitions.h
include/open62541/architecture_functions.h
include/open62541/client.h
include/open62541/client_config.h
include/open62541/client_config_default.h
include/open62541/client_highlevel.h
include/open62541/client_highlevel_async.h
include/open62541/client_subscriptions.h
include/open62541/common.h
include/open62541/config.h
include/open62541/constants.h
include/open62541/ms_stdint.h
include/open62541/network_tcp.h
include/open62541/nodeids.h
include/open62541/plugin/
include/open62541/plugin/accesscontrol.h
include/open62541/plugin/accesscontrol_default.h
include/open62541/plugin/create_certificate.h
include/open62541/plugin/log.h
include/open62541/plugin/log_stdout.h
include/open62541/plugin/log_syslog.h
include/open62541/plugin/network.h
include/open62541/plugin/nodestore.h
include/open62541/plugin/nodestore_default.h
include/open62541/plugin/pki.h
include/open62541/plugin/pki_default.h
include/open62541/plugin/pubsub.h
include/open62541/plugin/securitypolicy.h
include/open62541/plugin/securitypolicy_default.h
include/open62541/plugin/securitypolicy_mbedtls_common.h
include/open62541/posix/
include/open62541/posix/ua_architecture.h
include/open62541/server.h
include/open62541/server_config.h
include/open62541/server_config_default.h
include/open62541/server_pubsub.h
include/open62541/statuscodes.h
@ -37,9 +37,10 @@ include/open62541/types.h
include/open62541/types_generated.h
include/open62541/types_generated_handling.h
include/open62541/util.h
include/open62541/ziptree.h
@comment include/ziptree.h
lib/cmake/
lib/cmake/open62541/
lib/cmake/open62541/FindMbedTLS.cmake
lib/cmake/open62541/open62541Config.cmake
lib/cmake/open62541/open62541ConfigVersion.cmake
lib/cmake/open62541/open62541Macros.cmake
@ -63,6 +64,7 @@ share/examples/open62541/client_connect.c
share/examples/open62541/client_connect_loop.c
share/examples/open62541/client_connectivitycheck_loop.c
share/examples/open62541/client_historical.c
share/examples/open62541/client_method_async.c
share/examples/open62541/client_subscription_loop.c
share/examples/open62541/common.h
share/examples/open62541/custom_datatype/
@ -75,8 +77,14 @@ share/examples/open62541/discovery/server_lds.c
share/examples/open62541/discovery/server_multicast.c
share/examples/open62541/discovery/server_register.c
share/examples/open62541/encryption/
share/examples/open62541/encryption/README_client_server_tpm_keystore.txt
share/examples/open62541/encryption/client_encryption.c
share/examples/open62541/encryption/client_encryption_tpm_keystore.c
share/examples/open62541/encryption/server_encryption.c
share/examples/open62541/encryption/server_encryption_tpm_keystore.c
share/examples/open62541/events/
share/examples/open62541/events/client_eventfilter.c
share/examples/open62541/events/server_random_events.c
share/examples/open62541/nodeset/
share/examples/open62541/nodeset/CMakeLists.txt
share/examples/open62541/nodeset/Opc.Ua.POWERLINK.NodeSet2.bsd
@ -90,31 +98,71 @@ share/examples/open62541/nodeset/testnodeset.csv
share/examples/open62541/nodeset/testnodeset.xml
share/examples/open62541/nodeset/testtypes.bsd
share/examples/open62541/pubsub/
share/examples/open62541/pubsub/README_pubsub_tpm2_pkcs11.txt
share/examples/open62541/pubsub/README_pubsub_tpm_keystore.txt
share/examples/open62541/pubsub/example_publisher.bin
share/examples/open62541/pubsub/monitoring/
share/examples/open62541/pubsub/monitoring/server_pubsub_subscribe_custom_monitoring.c
share/examples/open62541/pubsub/pubsub_publish_encrypted.c
share/examples/open62541/pubsub/pubsub_publish_encrypted_tpm.c
share/examples/open62541/pubsub/pubsub_publish_encrypted_tpm_keystore.c
share/examples/open62541/pubsub/pubsub_subscribe_encrypted.c
share/examples/open62541/pubsub/pubsub_subscribe_encrypted_tpm.c
share/examples/open62541/pubsub/pubsub_subscribe_encrypted_tpm_keystore.c
share/examples/open62541/pubsub/pubsub_subscribe_standalone.c
share/examples/open62541/pubsub/server_pubsub_file_configuration.c
share/examples/open62541/pubsub/server_pubsub_publisher_iop.c
share/examples/open62541/pubsub/server_pubsub_publisher_rt_level.c
share/examples/open62541/pubsub/server_pubsub_publisher_rt_level_raw.c
share/examples/open62541/pubsub/server_pubsub_rt_field_information_model.c
share/examples/open62541/pubsub/server_pubsub_subscriber_rt_level.c
share/examples/open62541/pubsub/tutorial_pubsub_connection.c
share/examples/open62541/pubsub/tutorial_pubsub_mqtt_publish.c
share/examples/open62541/pubsub/tutorial_pubsub_publish.c
share/examples/open62541/pubsub/tutorial_pubsub_publish_raw.c
share/examples/open62541/pubsub/tutorial_pubsub_subscribe.c
share/examples/open62541/pubsub/tutorial_pubsub_subscribe_raw.c
share/examples/open62541/pubsub_realtime/
share/examples/open62541/pubsub_realtime/README.md
share/examples/open62541/pubsub_realtime/bufmalloc.c
share/examples/open62541/pubsub_realtime/bufmalloc.h
share/examples/open62541/pubsub_realtime/README_pubsub_TSN.txt
share/examples/open62541/pubsub_realtime/Readme_PubSub.txt
share/examples/open62541/pubsub_realtime/etfa18-pfrommer-tsn-pubsub.pdf
share/examples/open62541/pubsub_realtime/nodeset/
share/examples/open62541/pubsub_realtime/nodeset/CMakeLists.txt
share/examples/open62541/pubsub_realtime/nodeset/pubDataModel.csv
share/examples/open62541/pubsub_realtime/nodeset/pubDataModel.xml
share/examples/open62541/pubsub_realtime/nodeset/pubsub_nodeset_rt_publisher.c
share/examples/open62541/pubsub_realtime/nodeset/pubsub_nodeset_rt_subscriber.c
share/examples/open62541/pubsub_realtime/nodeset/subDataModel.csv
share/examples/open62541/pubsub_realtime/nodeset/subDataModel.xml
share/examples/open62541/pubsub_realtime/opc-ua-tsn-wrs.pdf
share/examples/open62541/pubsub_realtime/pubsub_TSN_loopback.c
share/examples/open62541/pubsub_realtime/pubsub_TSN_loopback_single_thread.c
share/examples/open62541/pubsub_realtime/pubsub_TSN_publisher.c
share/examples/open62541/pubsub_realtime/pubsub_TSN_publisher_multiple_thread.c
share/examples/open62541/pubsub_realtime/pubsub_interrupt_publish.c
share/examples/open62541/pubsub_realtime/start_rt_publish.sh
share/examples/open62541/pubsub_realtime/vxworks/
share/examples/open62541/pubsub_realtime/vxworks/README.md
share/examples/open62541/pubsub_realtime/vxworks/pubsub_interrupt_publish_tsn.c
share/examples/open62541/server.cpp
share/examples/open62541/server_ctt.c
share/examples/open62541/server_inheritance.c
share/examples/open62541/server_instantiation.c
share/examples/open62541/server_loglevel.c
share/examples/open62541/server_mainloop.c
share/examples/open62541/server_repeated_job.c
share/examples/open62541/server_settimestamp.c
share/examples/open62541/tutorial_client_events.c
share/examples/open62541/tutorial_client_firststeps.c
share/examples/open62541/tutorial_datatypes.c
share/examples/open62541/tutorial_server_alarms_conditions.c
share/examples/open62541/tutorial_server_datasource.c
share/examples/open62541/tutorial_server_events.c
share/examples/open62541/tutorial_server_firststeps.c
share/examples/open62541/tutorial_server_historicaldata.c
share/examples/open62541/tutorial_server_method.c
share/examples/open62541/tutorial_server_method_async.c
share/examples/open62541/tutorial_server_monitoreditems.c
share/examples/open62541/tutorial_server_object.c
share/examples/open62541/tutorial_server_variable.c
@ -136,22 +184,27 @@ share/open62541/tools/nodeset_compiler/backend_graphviz.py
share/open62541/tools/nodeset_compiler/backend_open62541.py
share/open62541/tools/nodeset_compiler/backend_open62541_datatypes.py
share/open62541/tools/nodeset_compiler/backend_open62541_nodes.py
share/open62541/tools/nodeset_compiler/backend_open62541_typedefinitions.py
share/open62541/tools/nodeset_compiler/datatypes.py
share/open62541/tools/nodeset_compiler/nodes.py
share/open62541/tools/nodeset_compiler/nodeset.py
share/open62541/tools/nodeset_compiler/nodeset_compiler.py
share/open62541/tools/nodeset_compiler/nodeset_testing.py
share/open62541/tools/nodeset_compiler/opaque_type_mapping.py
share/open62541/tools/nodeset_compiler/type_parser.py
share/open62541/tools/schema/
share/open62541/tools/schema/Custom.Opc.Ua.Transport.bsd
share/open62541/tools/schema/NodeIds.csv
share/open62541/tools/schema/Opc.Ua.NodeSet2.DiagnosticsMinimal.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.EventsMinimal.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.HistorizingMinimal.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.Minimal.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.Part8_Subset.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.PubSubMinimal.xml
share/open62541/tools/schema/Opc.Ua.NodeSet2.Reduced.xml
share/open62541/tools/schema/Opc.Ua.Types.bsd
share/open62541/tools/schema/StatusCode.csv
share/open62541/tools/schema/datatypes_dataaccess.txt
share/open62541/tools/schema/datatypes_diagnostics.txt
share/open62541/tools/schema/datatypes_discovery.txt
share/open62541/tools/schema/datatypes_events.txt
share/open62541/tools/schema/datatypes_historizing.txt
@ -161,5 +214,6 @@ share/open62541/tools/schema/datatypes_pubsub.txt
share/open62541/tools/schema/datatypes_query.txt
share/open62541/tools/schema/datatypes_subscriptions.txt
share/open62541/tools/schema/datatypes_transport.txt
share/open62541/tools/schema/datatypes_typedescription.txt
share/open62541/tools/ua-nodeset/
%%ns0_full%%