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.
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.
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.
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.
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.
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.
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
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>`
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.