40 Commits
Author SHA1 Message Date
Julius Pfrommer 5bde0ea466 Merge origin/1.5 into master
Adapt the 1.5 fixes to master's discovery, alarms and conditions, session, and nodeset-loader architecture. Preserve master behavior and combine PubSub replay protection with authenticated key rollover. Enable allocation-failure regression coverage and retain both branches' relevant tests.
2026-10-28 17:37:05 +01:00
Niels BeierandAndreas Ebner 9b0af1fbe4 fix(historydata): treat a zero start or end time as unspecified
Co-authored-by: Andreas Ebner <andreas.ebner@o6-automation.com>
2026-10-26 12:06:23 +01:00
Julius Pfrommer e0ec7f1e4a test(history): exercise allocation failures in CI coverage builds
Enable allocator hooks in the alarms coverage configuration and cover history constructor and insertion failures. Include stdlib.h explicitly in tests that use EXIT_SUCCESS and EXIT_FAILURE so the allocator-enabled build compiles without transitive standard-library includes.
2026-10-21 23:07:14 +02:00
Daniel Opitz 6132ff192b test(server): cover history, alarms, permissions and node lifecycle 2026-10-17 14:17:38 +02:00
Julius Pfrommer 3d390d26b1 Merge remote-tracking branch 'origin/1.5' into merge_15_master
# Conflicts:
#	CHANGES.md
#	src/server/ua_services_attribute.c
#	src/server/ua_transport_tcp.c
#	tests/server/check_accesscontrol.c
2026-10-08 14:33:33 +02:00
Andreas Ebner f265859191 fix(plugins): free the parsed IndexRange in the default history read
readRaw_service_default parsed the IndexRange of each node to read, but
never freed the dimensions of the parsed range. Every raw history read with
an IndexRange leaked them. They are now freed after the backend call.
2026-10-06 18:22:49 +02:00
Andreas Ebner 918f2cfd4b fix(docs): typos in comments, docs and messages
Fix misspellings found with codespell across headers, sources, examples,
tests and the documentation, including "propably" in the nodeset
compiler docs. Identifiers, companion spec names and generated code are
left untouched.
2026-09-28 16:20:44 +02:00
Julius Pfrommer 335cead676 test(mt): synchronize remaining threaded fixture state
Use pointer-sized atomic run flags in threaded fixtures, including dynamically
allocated discovery and browse flags. Pointer sizing supports the MSVC atomic
implementation as well as C11 and GCC atomics.

Serialize the client error-injection test with the server network callbacks
before accessing the internal session and shared send buffer.
2026-09-21 16:23:09 +02:00
Julius Pfrommer 41ea6c9324 test: fix compatibility across CI configurations 2026-09-17 22:59:45 +02:00
Julius Pfrommer c15f297b8d Merge remote-tracking branch 'origin/1.4' into merge_14_15
# Conflicts:
#	CHANGELOG
#	CMakeLists.txt
#	plugins/crypto/openssl/securitypolicy_openssl_common.c
#	plugins/crypto/pkcs11/securitypolicy_pubsub_aes128ctr_tpm.c
#	plugins/crypto/pkcs11/securitypolicy_pubsub_aes256ctr_tpm.c
#	src/pubsub/ua_pubsub_networkmessage.c
#	src/pubsub/ua_pubsub_ns0.c
#	src/pubsub/ua_pubsub_writer.c
#	src/pubsub/ua_pubsub_writergroup.c
#	src/server/ua_services_monitoreditem.c
#	src/server/ua_services_session.c
#	src/server/ua_session.h
#	tests/CMakeLists.txt
#	tests/check_securechannel.c
#	tests/pubsub/check_pubsub_encryption.c
#	tests/pubsub/check_pubsub_publish.c
#	tests/server/check_server_alarmsconditions.c
2026-09-17 21:58:21 +02:00
Julius Pfrommer f4588beae7 fix(history): handle result allocation failures
Return BadOutOfMemory before invoking the read backend or writing HistoryUpdate operation results when their per-result allocations fail. This prevents null pointers from reaching the backend and avoids a null write under memory pressure.
2026-09-14 12:53:43 +02:00
Andreas Ebner c9feb5387d Merge 1.4 into 1.5 2026-03-30 22:17:39 +02:00
Andreas Ebner 59d47fcf1f fix(server): enforce AccessLevel StatusWrite and TimestampWrite bits
The server did not check the StatusWrite (0x20) and TimestampWrite
(0x40) bits of the AccessLevel attribute when writing the StatusCode
or SourceTimestamp of a Variable value. This allowed clients to write
those fields even when the corresponding access bits were not set.

Add checks for UA_ACCESSLEVELMASK_STATUSWRITE when the WriteValue
contains hasStatus, and for UA_ACCESSLEVELMASK_TIMESTAMPWRITE when it
contains hasSourceTimestamp (OPC UA Part 3, §8.55, Table 46).

Add unit tests that use a non-admin session to verify that:
- Writing StatusCode is rejected when StatusWrite bit is not set
- Writing SourceTimestamp is rejected when TimestampWrite bit is not set
- Both writes succeed when the corresponding bits are set
2026-02-26 15:25:47 +01:00
Julius Pfrommer 99d4d46804 Merge remote-tracking branch 'origin/1.4' into merge_14_master_25 2025-01-28 06:55:14 +01:00
Julius Pfrommer 1321281968 refactor(tests): Lock the EventLoop before client/server in the tests 2025-01-26 23:29:22 +01:00
Julius Pfrommer 7f81b5e547 refactor(arch): Remove UA_REUSEADDR option -- handle in the global test server constructor 2024-03-22 11:20:20 +01:00
Julius Pfrommer 4fed465615 refactor(core): Move protocol-independent service execution into /src/server/ua_services.c 2024-02-13 17:17:22 +01:00
Julius Pfrommer 4258faa0de fix(tests): Fix use of deterministic clock in unit tests 2023-12-10 11:38:53 +01:00
Julius Pfrommer 09317bcc00 Merge remote-tracking branch 'origin/1.4' 2023-11-14 17:39:04 +01:00
Julius Pfrommer aa67447588 refactor(server): Fix handling of server/source timestamp
Don't "invent" a source timestamp for dynamic node values.
2023-10-29 19:29:23 +01:00
Julius Pfrommer dd300f3eff refactor(tests): Set a custom "fake" clock in the EventLoop for unit tests 2023-10-04 10:56:26 +02:00
Julius Pfrommer 390c092c05 refactor(tests): Include stdlib.h where open62541 no longer does it 2023-07-28 21:42:56 +02:00
Julius Pfrommer 928931ec36 refactor(core): Move architecture-specific definition out of the public headers 2023-07-28 21:42:56 +02:00
Andreas Eckerstorfer 022ad60723 fix (tests): Check server instance in UNIT tests
Failed UNIT tests caused an exception in the server loop, if the
server instance could not be created.
2023-01-31 00:07:18 +01:00
Julius Pfrommer f385bcd0dc refactor(test): Simplify the historizing unit tests 2022-08-05 09:13:05 +02:00
Julius Pfrommer 3949afe038 fix(test): Remove sign conversion warnings in check_server_historical_data.c 2022-07-21 12:45:26 +02:00
Julius Pfrommer a43536443c feat(ci): Add historizing to the CI builds 2021-07-02 15:32:12 +02:00
Mark Giraud 3e5bb3a9a5 refactor: Use correct format specifiers 2021-07-01 16:41:00 +02:00
Julius Pfrommer beeafc02e9 refactor(core): Better type-safety for locking primitives 2021-01-05 23:04:23 +01:00
Julius Pfrommer 7c23332027 refactor(test): Use _clear instead of _deleteMembers 2020-10-18 15:21:40 +02:00
Julius Pfrommer 041f3121c1 refactor(tests): Replace _deleteMembers with _clear in server tests 2020-09-28 20:06:13 +02:00
Ubuntu 28c857114b feat(multithreading): Supporting history data 2019-08-27 07:44:34 +02:00
Julius Pfrommer fd08d012d9 Server: Initialize the config in the server 2019-04-23 00:41:32 +02:00
Stefan Profanter f19a6a1839 Stack: Correct include for architecture related headers
Fixes #2646
2019-04-18 08:01:45 +02:00
Stefan Profanter 63f3653ff1 Additional header cleanup and consistent name of ns generated files 2019-03-21 20:16:31 +01:00
Julius Pfrommer c9c818868f Move header files to a more unix-like structure
This commit drops the 'ua_' prefix and changes the public includes
to the form `#include <open62541/server.h>` instead of the old
`#include <ua_server.h>`
2019-03-21 20:16:31 +01:00
Peter Rustler ac8c5ff07e historydatabase_plugin: Add test for random index backend. 2019-02-06 00:06:57 +01:00
Julius Pfrommer b4c9fc37eb Client: Initialize client config inside the client structure
Temporarily disable encyrption
2019-01-30 18:45:42 +01:00
Peter Rustler 9b29a27e85 server_historical_update: Add test for the historical update. 2019-01-30 17:36:23 +01:00
Peter Rustler cf193cf41d Cleanup client historical api to meet ci and pr requirements.
The following commits where squashed in this commit:
* client_historical_data: Bugfix isInverse
* client_historical: Cleanup and refactoring to meet pr comments.
* client_historialdata: Add a test for client historical read raw.
* historical_client: support index range
* historical_client: refactoring and cleanup methods.
* historical: Make the build system configurable and rename server test.
* historical_data: cleanup
* client_historical: Add code for events and modified history
* client_historical: fix memoryleak
* hda_client: Fix client_historical example.
2019-01-08 00:01:05 +01:00