Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2094 commits
Select commit Hold shift + click to select a range
86aa417
refactor(examples): do not set an invalid IP in server_multicast.c
laroche Jan 1, 2025
339cc19
refactor(examples,tests): avoid spaces for mDNS records
laroche Jan 1, 2025
44189f7
feat(ci): build and upload amalgamation sources for releases
marwinglaser Nov 19, 2024
185bcf2
feat(ci): always run release workflow
marwinglaser Dec 10, 2024
34d957c
fix(server): Consistency in the use of the Windows architecture flag
NoelGraf Jan 9, 2025
087b809
refactor(core): Use recursive locks
jpfr Jan 9, 2025
d3dcdea
refactor(server): Simplify for recursive locks in ua_services_attribu…
jpfr Jan 9, 2025
e2023e1
refactor(server): Simplify with recursive locks in ua_services_nodema…
jpfr Jan 9, 2025
f95ebdd
refactor(server): Simplify with recursive locks in ua_services_method.c
jpfr Jan 9, 2025
a90da1a
refactor(arch): Simplify with recursive locking in the EventLoop
jpfr Jan 9, 2025
e8dbf7b
refactor(server): Simplify with recursive locking in ua_services_sess…
jpfr Jan 10, 2025
a91646b
refactor(server): Simplify subscriptions with recursive locking strategy
jpfr Jan 10, 2025
d78e7fd
refactor(server): Simplified recursive locking in ua_services_view.c
jpfr Jan 10, 2025
5132259
refactor(server): Simplified recursive locking in ua_services_discove…
jpfr Jan 10, 2025
4e6403a
refactor(server): Use simplified recursive locks in ua_server.c
jpfr Jan 10, 2025
8f0f9cb
fix(server): Remove a wrong UA_UNLOCK in ua_server_ns0_diagnostics.c
jpfr Jan 10, 2025
7be32a5
refactor(client): Simplify with recursive locking
jpfr Jan 10, 2025
e4c1488
refactor(client): Locking in a sync/async response callback is no lon…
jpfr Jan 10, 2025
d281447
refactor(pubsub): Simplify by the use of recursive locks
jpfr Jan 10, 2025
684a8c5
refactor(server): use ".local" for mDNS published records
laroche Jan 14, 2025
cb1bd47
fix(ci): make codecov run for release branches (#7020)
marwinglaser Jan 15, 2025
403f462
fix(plugin): Convert PEM to DER for rsa policies
ccvca Dec 10, 2024
10256ed
fix(core): allow recursive locking with musl libc
GoetzGoerisch Jan 23, 2025
8fb31b2
fix(example): Allow connection with username and password without enc…
NoelGraf Jan 24, 2025
f691be7
fix(core): The static initialization of a mutex must also be the recu…
jpfr Jan 25, 2025
b1151d3
feat(el): Expose the EventLoop mutex in its API
jpfr Jan 25, 2025
92bbbe5
refactor(server): Take the EventLoop first for the server
jpfr Jan 25, 2025
e4301ba
refactor(pubsub): Take the EventLoop lock before the server lock
jpfr Jan 25, 2025
c32272c
refactor(client): Take the EventLoop lock before the client lock
jpfr Jan 25, 2025
3b2d62c
fix(core): JSON-encode Variant ArrayDimensions as UInt32 (unsigned)
jpfr Jan 25, 2025
1321281
refactor(tests): Lock the EventLoop before client/server in the tests
jpfr Jan 25, 2025
e1bb943
fix(core): Fix an inter overrun in the JSON decoding
jpfr Jan 26, 2025
4f6d0c9
refactor(core): Make the intent explicit in the JSON encoding
jpfr Jan 26, 2025
018d258
refactor(core): Remove UA_LOCK_STATIC_INIT and its only user
jpfr Jan 29, 2025
2119e7c
fix(server): Unlock the server before executing an async method
jpfr Feb 2, 2025
3e0be8e
refactor(client): Allow client EventLoops that do not expose lock/unlock
jpfr Feb 2, 2025
ad911c1
refactor(server): Allow server EventLoops that do not expose lock/unlock
jpfr Feb 2, 2025
abc76d3
refactor(core): Bump version to v1.4.10
jpfr Feb 2, 2025
79f87e3
fix(core): Call pthread_mutexattr_destroy for mutex attribute
keba-estr Feb 3, 2025
3b04d45
fix(ci): remove python-six dependency from doc_upload workflow
marwinglaser Dec 17, 2024
77741e2
fix(server): methodNode->async is only defined when multithreading is…
jpfr Feb 4, 2025
b67950d
fix(tools): Fix regular expression replacement parameter escapement
RolfKal Feb 4, 2025
a06985e
fix(pubsub): Add DataSetWriters to the end of the writers queue
jpfr Feb 4, 2025
bddc86f
refactor(pubsub): Add new DataSetReaders to the end of the readers list
jpfr Feb 4, 2025
2dbec45
fix(tools): improve findCheck function for cmake to work better when …
RolfKal Feb 4, 2025
aaf6ebd
improve(test): make ua_add_test() accept extra parameters for additio…
RolfKal Feb 4, 2025
6a0ed7d
feat(client): Check if the "CreatedAt" timestamp of the SecurityToken…
jpfr Feb 3, 2025
0ad559e
fix(tools): Fix regular expression replacement parameter escapement
RolfKal Feb 5, 2025
1c69d81
fix(doc) rewrite and overhaul sphinx configuration (#7106)
marwinglaser Feb 18, 2025
b3f73d3
refactor(ex): Move the server json configuration example to the examp…
NoelGraf Feb 19, 2025
29bd3d9
fix(pubsub): Correct documentation of beforeWrite callback
keba-estr Feb 18, 2025
823a98d
feat(tools): Installation of the generated autoinject library
NoelGraf Feb 14, 2025
dbd2844
feat(doc): Extended documentation for the NodesetInjector feature
NoelGraf Feb 14, 2025
4f16121
refactor(server): Collect async responses only once per second
jpfr Feb 22, 2025
c4193c5
fix(arch): Batch timed events by slightly adjusting the "nextTime" ti…
jpfr Mar 6, 2025
622318f
refactor(server): Set the max timeout value for the EventLoop to 500ms
jpfr Mar 6, 2025
cdb5fa0
fix(server): Fix comment about timeout interval
keba-estr Mar 10, 2025
5fad3cc
Merge remote-tracking branch 'origin/1.3' into 1.4
jpfr Mar 14, 2025
978b806
Merge pull request #7164 from jpfr/merge_13_14_23
jpfr Mar 14, 2025
2aa764b
refactor(build): Bump version to v1.4.11
jpfr Mar 14, 2025
491667a
feat(client): Check if the "CreatedAt" timestamp of the SecurityToken…
jpfr Feb 3, 2025
5ec7bef
fix(arch): Add qnx support
klausholstjacobsen Dec 3, 2024
c377d97
feat(arch): added qnx to readme file
klausholstjacobsen Jan 17, 2025
c5f59df
refactor(build): Simplify the hardened build setup / Remove workaroun…
jpfr Mar 22, 2025
041d6a2
fix(core): Fix a busy-loop when timeouts are less than 1ms (fixes #7102)
jpfr Mar 23, 2025
86e0409
refactor(ci): Disable Debian package builds on Azure
jpfr Mar 23, 2025
cac50b9
fix(tests): Increase timeouts for a failing client SecureChannel unit…
jpfr Mar 25, 2025
df61c22
fix(deps): Update musl time methods. Prefix to avoid name clash (fix …
jpfr Mar 25, 2025
870f3ee
fix(server): lock server state while copying out statistics
sgoll Mar 27, 2025
d4efff5
fix(server): add debug assertions for critical sections regarding sta…
sgoll Mar 28, 2025
4e9da65
refactor(server): Simplify locking logic in ua_server_binary.c
jpfr Mar 31, 2025
79bc02f
fix(tests): Fix the application-context setup in fuzz_binary_message.cc
jpfr Mar 31, 2025
087039e
feat(ci): remove ubuntu-20.04 ci
marwinglaser Feb 18, 2025
22d60f1
fix(ci): update tpm2-tss and tpm2-pkcs11 to fix TPM Tool Build
marwinglaser Mar 11, 2025
0767779
fix(ci): switch to clang-14 to fix clang build
marwinglaser Mar 11, 2025
d293259
fix(ci): Fix an ill-defined regex in valgrind_check_error.py
NoelGraf Oct 17, 2023
f279e93
fix(ci): disable pubsub ethernet support for tcc
marwinglaser Mar 18, 2025
5c1882c
fix(ci): suppress invalid valgrind report in pthread_create in tests
marwinglaser Mar 25, 2025
e1b2fee
fic(ci) run linux CI in an ubuntu container (#7225)
marwinglaser Apr 15, 2025
352c729
fix(client) adjust client connect process order
andreasebner Apr 15, 2025
92b2276
fix(server): Don't allow duplicate ServerUrl for discovery (#7212)
maikrou Apr 19, 2025
59de3ab
fix(core): Potential null pointer access with encryption disabled (#7…
maikrou Apr 19, 2025
64684d5
fix(util): Fix local variable not referenced compiler warning (#7208)
maikrou Apr 19, 2025
b75423d
Merge remote-tracking branch 'upstream/1.3' into 1.4
marwinglaser Apr 16, 2025
fd7623b
fix(ci): add new dependencies
marwinglaser Apr 16, 2025
4669a6c
refactor(tests): move TEST_MQTT_SERVER to environment variable in new…
marwinglaser Apr 15, 2025
48d8d5b
refactor(build): remove cmake 3.20 requirement
marwinglaser Apr 22, 2025
a540be9
fix(test): client async connect is not instant
bluhm Apr 22, 2025
6fe3e5b
Merge pull request #7236 from marwinglaser/merge_1.3
jpfr Apr 22, 2025
4874837
fix(client): use after free in client asyncServiceCalls
bluhm Jul 20, 2022
b42ecc8
mbedtls createcertificate: fix length calculation
jennes May 7, 2025
7a8db31
refactor(build): Bump version to v1.4.12
jpfr May 15, 2025
bcb0219
fix(plugin): fix namelist allocated from scandir not freed
Tassenpudding May 19, 2025
890d6ef
refactor(build): update linux build matrix and dependencies
andreasebner May 19, 2025
d25bce1
fix(ci) update path to build scripts
andreasebner May 21, 2025
749e611
fix(arch): Don't use UA_EventLoopPOSIX_setReusable for raw ETH sockets
jpfr Apr 24, 2025
6dea02d
Merge branch 'fix_1_4_ci_pipeline' of https://github.com/andreasebner…
andreasebner May 21, 2025
d463bff
fix(ci): Exclude the unit tests from clang-analyzer checks
jpfr Apr 24, 2025
0f3a977
fix(tests): update NaN checks for UA_Float and UA_Double to accommoda…
andreasebner May 21, 2025
30a9716
fix(ci): Fix an ill-defined regex in valgrind_check_error.py
NoelGraf Oct 17, 2023
1f1ba9a
fix(ci): suppress invalid valgrind report in pthread_create in tests
marwinglaser Mar 25, 2025
9d19f67
fix(nc): Correctly parse prefix of opaque NodeIds
julepp May 21, 2025
8c2f030
fix(ci): parameterize clang analyzer version in build script
andreasebner May 21, 2025
c297fda
fix(server) make valgrind suppression more generic to skip skstest fa…
andreasebner May 25, 2025
c981ba2
feat(server) update nodeset loader submodule reference
andreasebner May 25, 2025
525cccc
Merge pull request #7276 from andreasebner/fix_1_4_ci_pipeline
andreasebner May 25, 2025
62122ca
fix(server): Check the NodeClass before processing an async method
jpfr May 27, 2025
ce345f9
fix(server): Check access rights for async method execution
jpfr May 27, 2025
e3524be
refactor(tools): Cosmetic cleanup of tools/nodeset_injector/CMakeList…
jpfr Apr 11, 2025
82f6e65
refactor(tools): Simplify code generation in nodeset injector
NoelGraf May 6, 2025
af7f9cd
refactor(tools): Refactor cmake call for nodeset injector to match re…
NoelGraf May 23, 2025
27e4744
fix(server): Fix event filter validation
basyskom-jvoe May 28, 2025
23afa00
Merge pull request #7297 from NoelGraf/feat_improve_nodesetinjector
andreasebner Jun 3, 2025
932a857
refactor(crypto): Document that the crypto plugin initialization rout…
RolfKal May 29, 2025
a5210da
improve(crypto): avoid calling UA_CertificateVerification_Trustlist()…
RolfKal May 29, 2025
d894352
refactor(crypto): move duplicate code into its own local function and…
RolfKal May 29, 2025
7adf88d
improve(crypto): Fix unused local variable warning in clang
RolfKal Jun 3, 2025
1b7e853
fix(client): Ensure delayed processing of network messages is executed
jpfr Jun 8, 2025
8b171b2
fix(arch): Process delayed callbacks immediately via the nextCyclicTime
jpfr Jun 8, 2025
199a29d
refactor(arch): Clarify the use of monotonic time for EventLoop timers
jpfr Jun 9, 2025
cb011fd
fix(tools): Fixed proper decoding of LocalizedText
julepp Jun 23, 2025
f85d46c
fix(client): Fix user token policy validation
basyskom-jvoe Jun 18, 2025
6e0bc85
fix(client): Skip security policy check for anonymous identity token
basyskom-jvoe Jun 20, 2025
45f676e
improve(tests): Add unit tests for authSecurityPolicies usage
basyskom-jvoe Jun 23, 2025
78a1817
refactor(deps): bump libressl to 3.9.2
GoetzGoerisch Jun 30, 2025
484348f
refactor(build): Bump version number to v1.4.13
jpfr Aug 4, 2025
bcc48f6
fix(core): Ensure that only quiet NAN are used for float/double
jpfr Sep 29, 2024
3b55366
fix(build): Pacify compiler warnings related to goto (but harmless)
jpfr Oct 8, 2025
d55c27e
fix(plugins): Pacify a clang warning in ua_pki_mbedtls.c
jpfr Oct 8, 2025
7068591
fix(client): Remove memleak in async processing
jpfr Oct 9, 2025
02fbcc2
feat(tests): Add a test for UA_Server_getSessionParameter
jpfr May 27, 2025
199a59a
fix(server): Fix a locking issue in browseWithContinuation
jpfr Oct 9, 2025
d10add6
fix(core): Ensure that only quiet NAN are used for float/double
jpfr Sep 29, 2024
f1eed9d
fix(build): Pacify compiler warnings related to goto (but harmless)
jpfr Oct 8, 2025
59d7cc5
fix(plugins): Pacify a clang warning in ua_pki_mbedtls.c
jpfr Oct 8, 2025
607f282
Merge remote-tracking branch 'origin/1.3' into merge_13_14_25
jpfr Oct 10, 2025
150ce4e
Merge pull request #7484 from jpfr/merge_13_14_25
jpfr Oct 10, 2025
e5a7dc0
refactor(build): Bump the release version to v1.3.16
jpfr Oct 20, 2025
76e425e
refactor(build): Bump version to v1.4.14
jpfr Oct 20, 2025
50514c8
feat(tests): Add a test case for setting session attributes from issu…
jpfr Nov 5, 2025
43f6df8
refactor(server): Include the session attributes map directly in the …
jpfr Nov 5, 2025
1aceacf
fix(plugins): Use the session parameters feature instead of storing d…
jpfr Nov 5, 2025
7251233
Merge remote-tracking branch 'origin/1.3' into merge_13_14_26
jpfr Nov 5, 2025
4b56b1d
Merge pull request #7520 from jpfr/merge_13_14_26
jpfr Nov 5, 2025
eb9e459
fix(nc): Reorder parsing of LocalizedText fields
julepp Nov 5, 2025
46db7cf
refactor(docs): Update the README.md to mention o6 Automation and the…
jpfr Nov 7, 2025
0ba41ab
refactor(doc): Add project links to the Readme
jpfr Nov 10, 2025
f225a3c
refactor(doc): Use links with target=_blank in the Readme
jpfr Nov 10, 2025
7dad7d5
test(sec): Add test for CA sign certs
soekkle Nov 14, 2025
ce66807
fix(client): Add workaround for PEM certificates
soekkle Nov 14, 2025
0f0d7bc
fix(plugins): Extend expiresInDays range for OpenSSL cert creation on…
basyskom-jvoe Dec 2, 2025
51ff659
fix(plugin): fix namelist allocated from scandir not freed
Tassenpudding May 19, 2025
62c025b
fix(plugin): double allocation of certificate thumbprint
JohannesKauffmann Dec 9, 2025
0a3036d
fix(client): Prevent potential use of closed epollfd in synchronous d…
AntonMoryakov Dec 28, 2025
1c4f111
src: pubsub: ua_pubsub_ns0.c: prevent NULL dereference in onReadLocke…
AntonMoryakov Jan 12, 2026
fb404ed
fix(pubsub): Prevent NULL dereference in UA_PubSubDataSetField_sample…
AntonMoryakov Jan 15, 2026
95dc4c1
fix(server): Check return value of addRepeatedCallback in UA_AsyncMan…
AntonMoryakov Jan 15, 2026
33001cb
fix(client): Fix build failure without historizing
JohannesKauffmann Jan 15, 2026
93ed51d
fix(core): Remove usage of the "enc() | enc()" pattern as the order o…
jpfr Jan 17, 2026
3a02b5c
fix(pubsub): Implicit declaration of pthread_create
Antonios-C Jan 20, 2026
362b51d
fix(build): List private dependencies in .pc file
JohannesKauffmann Dec 10, 2025
7fc8628
fix(server): Avoid comparing a scalar value and a null-array when det…
dpazj Jan 14, 2026
ff411f0
fix(server): Avoid comparing a scalar value and a null-array when det…
dpazj Jan 14, 2026
bc39a98
refactor(docs): Update the description of the "Standard Server" certi…
jpfr Feb 2, 2026
41f4dee
refactor(build): Bump version to v1.3.17
jpfr Feb 2, 2026
1e3a09e
Merge remote-tracking branch 'origin/1.3' into 1.4
jpfr Feb 2, 2026
d26beaa
Merge pull request #7697 from jpfr/merge_13_14_27
jpfr Feb 2, 2026
45e4cd3
refactor(build): Bump version to v1.4.15
jpfr Feb 2, 2026
19b7436
refactor(pubsub): Initialize 'rv' in UA_NetworkMessage_decodePayload …
AntonMoryakov Feb 10, 2026
7195a7a
refactor(plugins): Remove unreachable code in UA_Openssl_RSA_Private_…
AntonMoryakov Feb 10, 2026
df6a96d
refactor(plugins): Remove unreachable code in syslog logger (#7714)
AntonMoryakov Feb 10, 2026
3bc83a7
refactor(server): Check for presence of binary protocol server-compon…
AntonMoryakov Feb 10, 2026
05b8129
fix(server): track transferred subscriptions for correct diagnostics …
andreasebner Feb 11, 2026
c87f22c
fix(ci): disable deprecated Windows 2019 Azure Pipeline builds
andreasebner Feb 12, 2026
62e4860
refactor(arch): Check return value of getsockname in UDP_registerList…
AntonMoryakov Feb 12, 2026
cacefb6
fix(pubsub): Prevent NULL dereference in UA_DataSetMessage_decodeBina…
AntonMoryakov Feb 16, 2026
b53cebc
fix(server): block transfer subscription for anonymous users includin…
andreasebner Feb 16, 2026
946c2d6
refactor(server): simplify anonymous user check logic
andreasebner Feb 16, 2026
b03a5ce
fix(pubsub): Add null check after UA_Array_new in addDataSetReaderCon…
AntonMoryakov Feb 17, 2026
2488947
refactor(client): Don't close the SecureChannel when the servers send…
jpfr Feb 17, 2026
f63e2a8
refactor(build): Bump version to v1.4.16
jpfr Feb 18, 2026
7eee5e7
fix(server): interpret a null or empty UserIdentityToken as anonymous
andreasebner Feb 19, 2026
59d47fc
fix(server): enforce AccessLevel StatusWrite and TimestampWrite bits
andreasebner Feb 23, 2026
6e3a27c
fix(server): return Bad_WriteNotSupported for StatusWrite/TimestampWr…
andreasebner Feb 27, 2026
c625d1d
fix(server): detach subscriptions on session timeout instead of deleting
andreasebner Feb 23, 2026
019fa65
fix(server): allow anonymous subscription transfer on secure channels…
andreasebner Mar 2, 2026
a234e47
fix: remove CTT references from anonymous user transfer comment
andreasebner Mar 2, 2026
1040c41
fix(server): use && instead of || to correctly guard anonymous-only T…
andreasebner Mar 6, 2026
861ff68
fix(server): return BadWaitingForInitialData for empty non-nullable v…
andreasebner Feb 23, 2026
0f2d70a
fix(server): avoid returning BadWaitingForInitialData with other errors
o6-mbruder Feb 27, 2026
d6fb639
fix(client): update status codes for error masking
aaghash17 Mar 9, 2026
92a2a0e
refactor(ci): use open62541 CI images and remove redundant deps
o6-nbeier Mar 10, 2026
7b8e674
fix(pubsub): prevent null pointer dereference in removeGroupAction
AntonMoryakov Mar 13, 2026
fbcc926
fix(ex): handle return values of fseek and ftell while parsing a cert…
o6-nbeier Mar 16, 2026
c7b70d2
fix(test): handle return values of fseek and ftell while parsing a ce…
o6-nbeier Mar 16, 2026
3c1e63e
fix(pubsub): prevent potential double-free in NS0 type destructors
o6-nbeier Mar 17, 2026
12a4409
fix(plugin): handle return values of fseek and ftell while parsing a …
o6-nbeier Mar 19, 2026
9adf5cb
refactor(server): eliminate intentional integer underflow in UA_Node_…
o6-nbeier Mar 17, 2026
bdd2fc7
fix(core): Fix the case where the last chunk may exceed the max messa…
r-sin Apr 20, 2026
c132505
fix(plugins): Directly keep logging pointer in CertInfo structure for…
karzhenkov Apr 27, 2026
cbc2538
refactor(client): Put all error handling that aborts the connection t…
o6-jpfr May 1, 2026
23b0fa8
refactor(server): Add a clarifying comment for the connection context…
o6-jpfr May 4, 2026
944aca6
fix(server): Variables with DataSource and SamplingInterval=0 receive…
andreasebner Feb 20, 2026
d721012
fix(server): guard securityPolicyUriPostfix against empty URI
lonelybones Mar 31, 2026
5977f7e
fix(client): Iterate while the client is CLOSING if the connection fails
o6-jpfr Jun 4, 2026
7f18221
fix(client): Correct SecureChannelState Log Output (#8099)
neojaw Jun 11, 2026
c9563e8
fix(server): Enforce default message and chunk size limits to prevent…
o6-nbeier May 7, 2026
9d376ab
fix(deps): fix dtoa buffer offsets
neojaw Jun 22, 2026
650071e
feat(test): add tests for dtoa
neojaw Jun 22, 2026
20b9990
fix(server): Apply allowBrowseNode access control in TranslateBrowseP…
o6-nbeier May 7, 2026
6f58e2c
fix(client): Return the precise statuscode when triggering a reconnect
o6-jpfr Jun 24, 2026
bdc9497
fix(tests): Fix an endless loop on CI runs
o6-jpfr Jun 24, 2026
683bb38
fix(build): Ensure the check library is found on MacOS
o6-jpfr Jun 24, 2026
c2d6072
fix(server): Deny transfer of detached subscriptions in default acces…
o6-nbeier May 7, 2026
bbe99cf
test(server): update subscription-survives-timeout test for detached-…
o6-nbeier Jun 25, 2026
9e0d238
fix(core): Fix integer overflow in array decoding
Feb 11, 2026
0eb7d97
fix(pubsub): Guard DataSetPayload JSON field count against UA_UInt16 …
o6-nbeier May 7, 2026
b3c0889
Merge remote-tracking branch 'origin/1.3' into merge_13_14
o6-jpfr Jun 27, 2026
840951b
fix(tests): Fix UDP JSON publish in MacOS
o6-jpfr Jun 27, 2026
86002d8
feat(arch): Implement UDP interface selection on MacOS
o6-jpfr Jun 27, 2026
435ac16
fix(build): Fix FindCheck for cross-arch builds
o6-jpfr Jun 27, 2026
b9d5a7f
Merge remote-tracking branch 'origin/1.3' into merge_13_14
o6-jpfr Jun 27, 2026
3c0f4ac
refactor(tests): Speed up check_server_reverseconnect.c
o6-jpfr Jun 27, 2026
a90304e
refactor(tests): Speed up check_monitoreditem_filter.c
o6-jpfr Jun 27, 2026
dc52683
refactor(tests): Speed up check_client_subscriptions.c
o6-jpfr Jun 27, 2026
c41d3d6
fix(tests): Adjust expected status codes in check_crl_validation.c
o6-jpfr Jun 27, 2026
1696ef8
Merge pull request #8148 from o6-automation/merge_13_14
jpfr Jun 27, 2026
db393f2
refactor(build): Bump version to v1.3.18
jpfr Jun 28, 2026
17b65bc
refactor(build): Bump version to v1.4.17
jpfr Jun 28, 2026
7cf493e
fix(core): use correct size in memset after moving Variant array elem…
lonelybones Mar 31, 2026
9c1636a
fix(server): Cap default outstanding PublishRequest count per session
o6-nbeier Apr 28, 2026
0b6352e
fix(server): Skip event-field evaluation for subscriptions without an…
o6-nbeier Mar 23, 2026
f117b5e
fix(server): Cap default outstanding PublishRequest count per session
o6-nbeier Apr 28, 2026
e025006
fix(deps): always NUL-terminate cj5_get_str() output buffer
o6-nbeier Jul 21, 2026
509972c
test(server): add regression coverage for the cj5_get_str() OOB read
o6-nbeier Jul 21, 2026
7e2f35e
fix(plugin): bounds-check token stream reads in JSON5 config parser
o6-nbeier Jul 23, 2026
8098907
fix(core): reject overflowing arrayDimensions product in Variant en/d…
o6-nbeier May 11, 2026
a1257fe
fix(pubsub): check message length before signature size subtraction
o6-nbeier May 11, 2026
2da371b
fix(server): migrate samplingMonitoredItems in TransferSubscriptions
o6-nbeier May 11, 2026
bc30df3
fix(server): migrate samplingMonitoredItems in TransferSubscriptions
o6-nbeier May 11, 2026
d3a9a59
refactor(server): Move libmdnsd dependency to the upstream
o6-jpfr May 3, 2026
1212e07
refactor(drivers): Fix variadic logging macro inside the mdnsd plugin
o6-jpfr Jul 3, 2026
14bd799
refactor(tests): Move over the mdnsd fuzzers from pro's repository
o6-jpfr May 4, 2026
fe0561b
refactor(tests): Simplify and fix the mdns unit tests recently import…
o6-jpfr May 5, 2026
2e7e5d3
fix(deps): Fix a fuzzing issue in mdnsd's _cache()
o6-jpfr Jul 24, 2026
add48bc
Merge remote-tracking branch 'origin/1.3' into merge_13_14
o6-jpfr Jul 24, 2026
78dea58
Merge pull request #8242 from o6-automation/merge_13_14
jpfr Jul 24, 2026
50dce76
refactor(build): Bump version to v1.4.18
jpfr Jul 27, 2026
542525f
Merge tag 'v1.4.18' into try_1_4
FreddieAkeroyd Jul 30, 2026
831bdc8
Add UA_EXPORT
FreddieAkeroyd Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .azure-pipelines/azure-pipelines-dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
- job: 'dist_debian'
displayName: 'Dist (debian)'
pool:
vmImage: 'ubuntu-18.04'
vmImage: 'ubuntu-20.04'
steps:
- checkout: self
submodules: recursive
Expand Down
2 changes: 1 addition & 1 deletion .azure-pipelines/azure-pipelines-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
- job: 'cross_freeRTOS'
displayName: 'Arch (freeRTOS)'
pool:
vmImage: 'ubuntu-18.04'
vmImage: 'ubuntu-20.04'
variables:
IDF_PATH: $(Build.BinariesDirectory)/esp-idf
steps:
Expand Down
27 changes: 0 additions & 27 deletions .azure-pipelines/azure-pipelines-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,13 @@ jobs:
CC_SHORTNAME: VS2019
GENERATOR: Visual Studio 16 2019
FORCE_CXX: OFF
vcpkg_cache: C:/vcpkg/installed
steps:
- checkout: self
submodules: recursive
- task: CacheBeta@0
inputs:
key: $(Build.SourcesDirectory)/tools/azure-devops/win/install.ps1
path: $(vcpkg_cache)
displayName: Cache vcpkg
- powershell: ./tools/azure-devops/win/install.ps1
displayName: Install Requirements
- powershell: ./tools/azure-devops/win/build.ps1
displayName: "Build: $(CC_NAME)"
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: open62541-$(CC_SHORTNAME)
# publishing artifacts from PRs from a fork is currently blocked
condition: succeeded()
displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"

- job: 'win_msys64'
displayName: 'Windows (msys64)'
Expand All @@ -51,13 +38,6 @@ jobs:
- powershell: ./tools/azure-devops/win/build.ps1
displayName: "Build: $(CC_NAME)"
errorActionPreference: continue # If set to Stop, we only get a truncated exception message. Error is handled by checking exit code
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: open62541-$(CC_SHORTNAME)
# publishing artifacts from PRs from a fork is currently blocked
condition: succeeded()
displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"

- job: 'win_clang'
displayName: 'Windows (clang)'
Expand All @@ -78,10 +58,3 @@ jobs:
- powershell: ./tools/azure-devops/win/build.ps1
displayName: "Build: $(CC_NAME)"
errorActionPreference: continue # If set to Stop, we only get a truncated exception message. Error is handled by checking exit code
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: open62541-$(CC_SHORTNAME)
# publishing artifacts from PRs from a fork is currently blocked
condition: succeeded()
displayName: "Publish Artifact: open62541-$(CC_SHORTNAME)"
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
- package-ecosystem: pip
directory: /doc
schedule:
interval: "weekly"
281 changes: 211 additions & 70 deletions .github/workflows/build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,103 @@ jobs:
strategy:
fail-fast: false
matrix:
include:
- build_name: "Debug Build & Unit Tests (gcc)"
cmd_deps: sudo apt-get install -y -qq mosquitto
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
build:
- name: "Debug Build & Unit Tests (gcc)"
cmd_action: unit_tests
- build_name: "Debug Build & Unit Tests without Subscriptions (gcc)"
cmd_deps: ""

- name: "Debug Build & Unit Tests (gcc, 32bit)"
cmd_deps: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y -qq gcc-multilib libsubunit-dev:i386 check:i386 libxml2-dev:i386
cmd_action: unit_tests_32

- name: "Debug Build & Unit Tests without Subscriptions (gcc)"
cmd_action: unit_tests_nosub
- build_name: "Debug Build & Unit Tests with Diagnostics (gcc)"
cmd_deps: ""

- name: "Debug Build & Unit Tests with Diagnostics (gcc)"
cmd_action: unit_tests_diag
- build_name: "Debug Build & Unit Tests with multithreading (gcc)"
cmd_deps: ""

- name: "Debug Build & Unit Tests with multithreading (gcc)"
cmd_action: unit_tests_mt
- build_name: "Debug Build & Unit Tests with Alarms&Conditions (gcc)"
cmd_deps: ""

- name: "Debug Build & Unit Tests with Alarms&Conditions (gcc)"
cmd_action: unit_tests_alarms
- build_name: "Debug Build & Unit Tests (clang)"
cmd_deps: sudo apt-get install -y -qq clang-11 clang-tools-11 mosquitto
cmd_action: CC=clang-11 CXX=clang++-11 unit_tests
- build_name: "Debug Build & Unit Tests (tcc)"
cmd_deps: sudo apt-get install -y -qq tcc mosquitto

- name: "Debug Build & Unit Tests (tcc)"
cmd_deps: sudo apt-get install -y -qq tcc
cmd_action: CC=tcc unit_tests
- build_name: "Encryption (MbedTLS) Build & Unit Tests (gcc)"

- name: "Encryption (MbedTLS) Build & Unit Tests (gcc)"
cmd_deps: sudo apt-get install -y -qq libmbedtls-dev
cmd_action: unit_tests_encryption MBEDTLS
- build_name: "PubSub Encryption (MbedTLS) Build & Unit Tests (gcc)"

- name: "PubSub Encryption (MbedTLS) Build & Unit Tests (gcc)"
cmd_deps: sudo apt-get install -y -qq libmbedtls-dev
cmd_action: unit_tests_encryption_mbedtls_pubsub
- build_name: "Encryption (OpenSSL) Build & Unit Tests (gcc)"

- name: "PubSub SKS Build & Unit Tests (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind libmbedtls-dev
cmd_action: unit_tests_pubsub_sks

- name: "Encryption (OpenSSL) Build & Unit Tests (gcc)"
cmd_deps: sudo apt-get install -y -qq openssl
cmd_action: unit_tests_encryption OPENSSL
- build_name: "Encryption (LibreSSL) Build & Unit Tests (gcc)"

- name: "Encryption (LibreSSL) Build & Unit Tests (gcc)"
cmd_deps: |
sudo apt-get install -y -qq curl
curl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2.tar.gz --output libressl.tar.gz
tar -xvz -f libressl.tar.gz
cd libressl-3.4.2
./configure
sudo make install
sudo apt-get install -y -qq curl
curl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.9.2.tar.gz --output libressl.tar.gz
tar -xvz -f libressl.tar.gz
cd libressl-3.9.2
./configure
sudo make install
cmd_action: unit_tests_encryption LIBRESSL
- build_name: "TPM Tool Build"
cmd_deps: |
sudo apt-get install -y -qq acl autoconf autoconf-archive automake build-essential cmake doxygen gcc git iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libssl-dev libsqlite3-dev libtool libyaml-dev pkg-config procps python3-pip sqlite3 udev uthash-dev

- name: "Release Build"
cmd_deps: sudo apt-get install -y -qq libmbedtls-dev
cmd_action: build_release

- name: "Amalgamation Build"
cmd_action: build_amalgamation

- name: "Amalgamation Build with Multithreading"
cmd_action: build_amalgamation_mt

- name: "Build All Companion Specifications"
cmd_action: build_all_companion_specs

include:
# Clang builds for specific Ubuntu versions
- os: ubuntu-20.04
build:
name: "Debug Build & Unit Tests (clang-11)"
cmd_deps: sudo apt-get install -y -qq clang-11 clang-tools-11
cmd_action: CC=clang-11 CXX=clang++-11 unit_tests

- os: ubuntu-22.04
build:
name: "Debug Build & Unit Tests (clang-15)"
cmd_deps: sudo apt-get install -y -qq clang-15 clang-tools-15 && sudo sysctl -w vm.mmap_rnd_bits=28
cmd_action: CC=clang-15 CXX=clang++-15 unit_tests

- os: ubuntu-24.04
build:
name: "Debug Build & Unit Tests (clang-18)"
cmd_deps: sudo apt-get install -y -qq clang-18 clang-tools-18 && sudo sysctl -w vm.mmap_rnd_bits=28
cmd_action: CC=clang-18 CXX=clang++-18 unit_tests

# TPM Tool Builds for specific Ubuntu versions
- os: ubuntu-20.04
build:
name: "TPM Tool Build ubuntu-20.04"
cmd_deps: |
sudo apt-get install -y -qq acl autoconf autoconf-archive automake doxygen iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libsqlite3-dev libtool libyaml-dev procps python3-pip sqlite3 udev uthash-dev
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-tss.git
cd ${HOME}/tpm2-tss
git checkout 2.4.6
git checkout 3.2.3
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
make -j$(nproc)
sudo make install
Expand All @@ -63,7 +113,7 @@ jobs:
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
cd ${HOME}/tpm2-pkcs11
git checkout 1.6.0
git checkout 1.7.0
./bootstrap && ./configure
make -j$(nproc)
sudo make install
Expand All @@ -72,44 +122,135 @@ jobs:
cd ${HOME}/tpm2-pkcs11/tools/
sudo pip3 install pyasn1_modules
pip3 install .
cmd_action: build_tpm_tool
- build_name: "Release Build"
cmd_deps: sudo apt-get install -y -qq libmbedtls-dev
cmd_action: build_release
- build_name: Amalgamation Build
cmd_deps: ""
cmd_action: build_amalgamation
- build_name: Amalgamation Build with Multithreading
cmd_deps: ""
cmd_action: build_amalgamation_mt
- build_name: "Valgrind Unit Tests with MbedTLS (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind libmbedtls-dev
cmd_action: unit_tests_valgrind MBEDTLS
- build_name: "Valgrind Unit Tests with OpenSSL (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind openssl
cmd_action: unit_tests_valgrind OPENSSL
- build_name: "Valgrind Examples with MbedTLS (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind libmbedtls-dev
cmd_action: examples_valgrind MBEDTLS
- build_name: "Valgrind Examples with OpenSSL (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind openssl
cmd_action: examples_valgrind OPENSSL
- build_name: "Clang Static Analyzer"
cmd_deps: sudo apt-get install -y -qq clang-11 clang-tools-11 libmbedtls-dev
cmd_action: build_clang_analyzer
name: ${{matrix.build_name}}
runs-on: ubuntu-20.04
cmd_action: build_tpm_tool
- os: ubuntu-22.04
build:
name: "TPM Tool Build ubuntu-22.04"
cmd_deps: |
sudo apt-get install -y -qq acl autoconf autoconf-archive automake doxygen iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libsqlite3-dev libtool libyaml-dev procps python3-pip sqlite3 udev uthash-dev
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-tss.git
cd ${HOME}/tpm2-tss
git checkout 3.2.3
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
make -j$(nproc)
sudo make install
sudo ldconfig
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo apt-get install -y -qq tpm2-tools opensc
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
cd ${HOME}/tpm2-pkcs11
git checkout 1.7.0
./bootstrap && ./configure
make -j$(nproc)
sudo make install
sudo ldconfig
sudo cp ${HOME}/tpm2-pkcs11/src/pkcs11.h /usr/include
cd ${HOME}/tpm2-pkcs11/tools/
sudo pip3 install pyasn1_modules
pip3 install .
cmd_action: build_tpm_tool
- os: ubuntu-24.04
build:
name: "TPM Tool Build ubuntu-24.04"
cmd_deps: |
sudo apt-get install -y -qq acl autoconf autoconf-archive automake doxygen iproute2 libcurl4-openssl-dev libjson-c-dev libcmocka0 libcmocka-dev libgcrypt20-dev libglib2.0-dev libini-config-dev libmbedtls-dev libsqlite3-dev libtool libyaml-dev procps python3-pip sqlite3 udev uthash-dev libltdl-dev python3-pyasn1-modules
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-tss.git
cd ${HOME}/tpm2-tss
git checkout 4.1.3
./bootstrap && ./configure --with-udevrulesdir=/etc/udev/rules.d --with-udevrulesprefix=70-
make -j$(nproc)
sudo make install
sudo ldconfig
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo apt-get install -y -qq tpm2-tools python3-tpm2-pytss opensc
cd ${HOME}
git clone https://github.com/tpm2-software/tpm2-pkcs11.git
cd ${HOME}/tpm2-pkcs11
git checkout 1.9.1
./bootstrap && ./configure
make -j$(nproc)
sudo make install
sudo ldconfig
sudo cp ${HOME}/tpm2-pkcs11/src/pkcs11.h /usr/include
cd ${HOME}/tpm2-pkcs11/tools/
pip3 install --break-system-packages .
cmd_action: build_tpm_tool

# Valgrind tests for specific Ubuntu versions
- os: ubuntu-24.04
build:
name: "Valgrind Build & Unit Tests with MbedTLS (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind libmbedtls-dev
cmd_action: unit_tests_valgrind MBEDTLS
- os: ubuntu-24.04
build:
name: "Valgrind Build & Unit Tests with OpenSSL (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind openssl
cmd_action: unit_tests_valgrind OPENSSL
- os: ubuntu-24.04
build:
name: "Valgrind Examples with MbedTLS and mDNSD (gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind libmbedtls-dev python3-netifaces
cmd_action: examples_valgrind MBEDTLS MDNSD
- os: ubuntu-24.04
build:
name: "Valgrind Examples with OpenSSL and avahi-mdns(gcc)"
cmd_deps: sudo apt-get install -y -qq valgrind openssl libmbedtls-dev python3-netifaces libavahi-client-dev libavahi-common-dev
cmd_action: examples_valgrind OPENSSL AVAHI

# Clang Static Analyzer Builds
- os: ubuntu-20.04
build:
name: "Clang Static Analyzer (clang11)"
cmd_deps: sudo apt-get install -y -qq clang-11 clang-tools-11 libmbedtls-dev
cmd_action: CC=clang-11 CXX=clang++-11 build_clang_analyzer 11
- os: ubuntu-22.04
build:
name: "Clang Static Analyzer (clang15)"
cmd_deps: sudo apt-get install -y -qq clang-15 clang-tools-15 libmbedtls-dev
cmd_action: CC=clang-15 CXX=clang++-15 build_clang_analyzer 15
- os: ubuntu-24.04
build:
name: "Clang Static Analyzer (clang18)"
cmd_deps: sudo apt-get install -y -qq clang-18 clang-tools-18 libmbedtls-dev
cmd_action: CC=clang-18 CXX=clang++-18 build_clang_analyzer 18

name: ${{ matrix.os }}-${{ matrix.build.name }}
runs-on: ubuntu-latest
container:
image: ghcr.io/open62541/open62541-ci:${{ matrix.os }}
options: --privileged
services:
mosquitto:
image: eclipse-mosquitto:1.6-openssl
env:
OPEN62541_TEST_MQTT_BROKER: opc.mqtt://mosquitto:1883
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y -qq python3-sphinx graphviz check
${{ matrix.cmd_deps }}
- name: ${{matrix.build_name}}
run: source tools/ci.sh && ${{matrix.cmd_action}}
env:
ETHERNET_INTERFACE: eth0
- name: Work around disabled ipv6 on actions container networks
run: |
IPV6="$(cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6)"
echo "Current IPv6 status on eth0: $IPV6"
[ "$IPV6" = "1" ] || exit

echo 0 | sudo tee /proc/sys/net/ipv6/conf/eth0/disable_ipv6 > /dev/null
IPV6="$(cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6)"
echo "New IPv6 status on eth0: $IPV6"
[ "$IPV6" = "0" ] || { echo "Failed to enable IPv6 on eth0"; exit 1; }
- uses: actions/checkout@v4
if: matrix.build.os == '' || matrix.build.os == matrix.os
with:
submodules: true
- name: Install Dependencies
if: matrix.build.os == '' || matrix.build.os == matrix.os
run: |
sudo apt-get update
${{ matrix.build.cmd_deps }}
- name: ${{ matrix.build.name }}
if: matrix.build.os == '' || matrix.build.os == matrix.os
shell: bash
run: source tools/ci.sh && ${{ matrix.build.cmd_action }}
env:
ETHERNET_INTERFACE: eth0
Loading
Loading