Commit Graph
1660 Commits
Author SHA1 Message Date
romanett 4f43f68cd9 User Management Improvements for Standard Server (Support Well Known Roles) (#2444)
- move IUserDatabase + RoleBased Identity into standard Server
- subclass SystemConfigurationIdentity from RoleBased Identity for backward compatibility
- add OPC UA Spec Defined Roles to the RoleBasedIdentity
2024-01-16 22:24:51 +01:00
bhnaphade 08c83c2f5b Trace information propagation Client to Server side (#2442)
Update OPC UA stack to pass activity trace information from client to server
2024-01-16 22:22:59 +01:00
Martin Regen 55c953d6de Expose hiresclock ticks and benchmark (#2460)
HiResClock uses the strictly monotonic ticks of the Stopwatch. Expose the Ticks for use in client and server timer.
2024-01-16 11:41:59 +01:00
dependabot[bot] f6ca14099a Bump Microsoft.Extensions.Configuration.EnvironmentVariables and Microsoft.Extensions.Configuration (#2461)
Bumps [Microsoft.Extensions.Configuration.EnvironmentVariables](https://github.com/dotnet/runtime) and [Microsoft.Extensions.Configuration](https://github.com/dotnet/runtime). These dependencies needed to be updated together.

Updates `Microsoft.Extensions.Configuration.EnvironmentVariables` from 6.0.1 to 8.0.0
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.1...v8.0.0)

Updates `Microsoft.Extensions.Configuration` from 6.0.1 to 8.0.0
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.1...v8.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.Configuration.EnvironmentVariables
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Microsoft.Extensions.Configuration
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-15 19:10:15 +01:00
dependabot[bot] 50c42330cd Bump BenchmarkDotNet from 0.13.11 to 0.13.12 (#2451)
Bumps [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) from 0.13.11 to 0.13.12.
- [Release notes](https://github.com/dotnet/BenchmarkDotNet/releases)
- [Commits](https://github.com/dotnet/BenchmarkDotNet/compare/v0.13.11...v0.13.12)

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-15 08:59:54 +01:00
romanett 735cd86103 GDS: add Tests to prove Method CreateCACertificateAsync is working correctly (#2404)
Add Test to verify the Method Create CreateCACertificateAsync is working correctly and not failing silently.
If the method functionality is improved in the future the first test needs to be adapted.
1.4.372.116-preview
2024-01-06 05:30:31 +01:00
Martin Regen abc0bde9fe Fix the client subscription preview no ack issue, ack forgotten publish responses (#2449)
Issues: 
- no ack were added to the list of ack to send after PR #2427. 
- Sometimes during network interruptions publish responses are never acked from the republish queue, unless cleaned up by the server. 

Fixes: 
- removed some debug code from the publish response processing and added acks to send back to the right list.
- Use a dedicated lock for the list of sequence numbers to send
- Detect still available sleeping sequence numbers and mark for deletion after a reasonable age (sequence number diff > 100).
- Breaking change: A `TransportChannel` which causes a `NullReferenceException` in a service call is now returned as `ServiceResultException` with status `BadSecureChannelClosed`. Use `NullableTransportChannel` to avoid the exception and get a null instead.
2024-01-06 05:07:48 +01:00
Martin Regen 96233dcdc5 Fix nodestate remove for diagnostic infos (#2450)
revert fix for regression introduced by fix for #2343, apply fix in nodemanagers which do not invert the inverse property, so bidirectional references were not removed.
2024-01-05 17:33:22 +01:00
Marc Schier e49ae09107 Call virtual SessionCreated (#2447)
In open the base is called but not the override.
2024-01-03 16:03:16 +01:00
Martin Regen a1c2216c2c Improvements for client keep alive timers and locks in subscriptions and sessions (#2427)
Issue: 
- On high load, the keep alive timers keep firing and may get blocked in locks, leading to thread starvation.
- The `AsyncAutoResetEvent` for subscriptions is triggered from the reader loop inside a lock and the following execution on the subscription workload blocks the reader thread.
- A reconnect is never triggered on a 'BadSessionIdInvalid`

Fixes: 
- Use periodic timer for platforms supporting it
- Make the `PublishingStopped` and lastkeepalive non blocking by using interlocked variables.
- To decouple the reader loop from the subscription processing, create the TaskCompletionSource with `TaskCreationOptions.RunContinuationsAsynchronously` option.
- Trigger a reconnect if the KeepAlive read request returns with a bad service result.
- Remove unnecessary locks around events, changed calls to be thread safe
1.4.372.112-preview
2023-12-29 12:29:00 +01:00
Martin Regen af7bb8ceca Improve Utils.IsEqual for byte compare (#2440)
- Improve the `Utils.IsEqual` helper for some special cases which compare byte[].
- In the actual implementation the compilers can not optimize for special cases, e.g. comparing a typical certificate as byte[] with 1k size on .NET8 took 167µs, the customized version needs only 69ns and is even faster than a P/Invoke to memc mp (80ns). 
- see benchmark result for improvements
- Due to the little difference between a custom byte[] and the T[] compare, the byte[] was moved back to the tests
- .NET Framework falls back on memcmp
2023-12-22 11:41:04 +01:00
Martin Regen cd893a6cff Fix: accessing Opc.Ua.Client.Subscription.AvailableSequenceNumbers throws ArgumentNullException (#2441)
- return empty enumerable if availablesequencenumbers is null
2023-12-22 11:22:48 +01:00
Martin Regen 0b24d62b7c Use EphemeralKeySet for certificates with private key on supporting platforms (#2421)
- In order to reduce leaking private key files on windows, `EphemeralKeySet`  is used on supporting platforms.
- Keys from the Ephemeral Keyset can not be used with `CopyWithPrivateKey`, add support to copy these keys, e.g. for GDS push support.
- MacOS throws PlatformNotSupported when ephemeral keyset is used.
- Kestrel needs a dedicated key without the ephemeral keyset flag.
- Dispose private keys where possible to reduce number of leaked files in tests.
- For bouncy castle legacy support, do not use the `PersistKey` flag by default on netstandard2.0 and net462. However keys may still leak.
2023-12-22 10:55:07 +01:00
dependabot[bot] 3398fe6a33 Bump Microsoft.IO.RecyclableMemoryStream from 2.3.2 to 3.0.0 (#2433)
Bumps [Microsoft.IO.RecyclableMemoryStream](https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream) from 2.3.2 to 3.0.0.
- [Release notes](https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream/releases)
- [Changelog](https://github.com/microsoft/Microsoft.IO.RecyclableMemoryStream/blob/master/CHANGES.md)
- [Commits](https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream/compare/2.3.2...3.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.IO.RecyclableMemoryStream
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 10:53:38 +01:00
dependabot[bot] 9c5219372b Bump github/codeql-action from 2 to 3 (#2434)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 10:53:22 +01:00
dependabot[bot] e97ba93bd4 Bump actions/upload-artifact from 3 to 4 (#2435)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-22 10:53:00 +01:00
dependabot[bot]andMartin Regen 8b3126bd47 Bump MQTTnet from 4.3.1.873 to 4.3.3.952 (#2419)
* Bump MQTTnet from 4.3.1.873 to 4.3.3.952

Bumps [MQTTnet](https://github.com/dotnet/MQTTnet) from 4.3.1.873 to 4.3.3.952.
- [Release notes](https://github.com/dotnet/MQTTnet/releases)
- [Commits](https://github.com/dotnet/MQTTnet/compare/v4.3.1.873...v4.3.3.952)

---
updated-dependencies:
- dependency-name: MQTTnet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update Opc.Ua.PubSub.csproj force a rebuild

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Regen <mregen@microsoft.com>
2023-12-15 08:09:31 +01:00
Suciu Mircea Adrian f85361a7bf Add Pubsub uadp discovery for Publisher Server Endpoints and DataSetWriter configuration (#2428) 2023-12-14 20:35:33 +01:00
Martin Regen 490d85cb4a Make CertStoreIdentifier.GetCertificateStoreTypeByName and RegisteredStoreTypeNames public (#2429)
Allow to check if there is already a regsitration.
2023-12-14 20:31:21 +01:00
bhnaphade 32fbc8077c Propagate tracing data to RequestHeader(AdditionaHeader) (#2322)
Sample code to show how to customize a session and how to add OTEL telemetry for activities to the additional header field of a request header.
2023-12-14 20:30:01 +01:00
JSGInray e2b3f6f359 Complex types builder should emit BuiltInType.Variant for DataTypes.Decimal (#2426) 2023-12-14 16:44:09 +01:00
dependabot[bot] 4267b5f73c Bump BenchmarkDotNet from 0.13.10 to 0.13.11 (#2420)
Bumps [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) from 0.13.10 to 0.13.11.
- [Release notes](https://github.com/dotnet/BenchmarkDotNet/releases)
- [Commits](https://github.com/dotnet/BenchmarkDotNet/compare/v0.13.10...v0.13.11)

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 07:38:12 +01:00
dependabot[bot] 2b0d7ff7da Bump actions/setup-dotnet from 3 to 4 (#2418)
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 3 to 4.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](https://github.com/actions/setup-dotnet/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 13:50:40 +01:00
Martin Regen 626bdcb9b8 Fix potential deadlocks with WaitAsync on a SemaphoreSlim (#2415)
Fix cases where a cancellable WaitAsync(ct) on a SemaphoreSlim within a try/finally could end up in a deadlock.
Fix: The WaitAsync must be outside the try/finally block. if the WaitAsync is cancelled, it should not release the semaphore
2023-12-07 19:55:05 +01:00
dependabot[bot]andMartin Regen 4697c40b86 Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 8.0.0 (#2388)
* Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 8.0.0

Bumps [Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/runtime) from 3.1.32 to 8.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/commits/v8.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.Logging.Abstractions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update UA Server Controls.csproj

* Update UA Client Controls.csproj

* Update Opc.Ua.Core.csproj

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Regen <mregen@microsoft.com>
2023-12-07 19:53:54 +01:00
romanett 75f96724c4 GDS: manage GDS Server users in Database and make it possible to avoid hardcoded passwords (#2402)
Manage the GDS Server Users in a Database. The implementation is based on the IUsersDatabase Interface which allows the User of the library to provide its own implementaion.
For testing a Json/Linq Users Database implementation is provided.
Passwords are hashed with the PBKDF2 with 10k iterations.

In the default config the standard users with the demo passwords are created, so the behaviour for existing applications is not changed.
2023-12-07 18:36:03 +01:00
romanett 14befa0eeb GDS: Trust own CA & add revoked Certificates to CRL (#2333)
With this Pull Request i improve the reusability of the Code by changing reverences to CertificateGroup to the Interface ICertificateGroup, through this change users can extend the functionality of CertificateGroup by providing an own implementation.
Furthermore I fix two issues of the GDS:
- The GDS does not trust its own CA Certificate, therefore it rejects connection attempts from clients with a CA signed certificate (e.g. after a sucessful registration & a new CA signed Application certificate received -> Client tries to connect with the new certificate to get the TrustList -> gets rejected)
-> new Method AddOwnCertificateToTrustedStoreAsync added to Class ApplicationInstance
-> you can call this after starting the GDS Server with CA-Certificate of the GDS as parameter

- The GDS does not revoke Certificate in the TrustedList Store CRL, so OPC UA Applications can´t get revoked certs
-> this is fixed by adding a call to UpdateAuthorityCertInTrustedList to the method RevokeCertificateAsync
2023-12-07 17:38:54 +01:00
Martin Regen 343f7b0fbc Add custom test targets to the build process, support for .NET 8. (#2410)
The goal is to reduce the overall number of builds, stop using end of life platforms in the build pipeline and to support
build of future/deprecated build targets in a custom build step, which is also triggered weekly in the ci builds.

In addition:
- added a doc which describes the release and versioning strategy of this project
- produce the Nuget packges with .NET 8 assemblies.
- produce a Docker build based on a .NET 8 based container.
- add custom test targets to test outdated platforms. Need a manual step to enable for VS or command line.
- bug fixes: the latest move to an alternate crypto library for Bouncy Castle, which is only used for the GDS support and  .NET Framework 4.6.2./netstandard2.0, revealed already a few issues which were previously not found. 
- only .NET8/.NET6/.NET Framework 4.8 are tested in Pull requests. Remaining builds in weekly scheduled builds.
2023-12-07 12:03:37 +01:00
dependabot[bot] 5fbfc578cf Bump Moq from 4.20.69 to 4.20.70 (#2409)
Bumps [Moq](https://github.com/moq/moq) from 4.20.69 to 4.20.70.
- [Release notes](https://github.com/moq/moq/releases)
- [Changelog](https://github.com/devlooped/moq/blob/main/CHANGELOG.md)
- [Commits](https://github.com/moq/moq/compare/v4.20.69...v4.20.70)

---
updated-dependencies:
- dependency-name: Moq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-06 18:37:33 +01:00
Martin Regen 8a2cf92710 SHA-1 signatures will no longer be trusted by default (#2406)
Since some distributions stop to trust SHA1 signatures by default, replace some internal algorithm checks with SHA256 versions.
The test case to force signature check also reenables ECC tests for .NET 4.8 which had been previously disabled.
2023-12-01 09:36:45 +01:00
dependabot[bot] 724954fe91 Bump Microsoft.SourceLink.GitHub from 1.1.1 to 8.0.0 (#2385)
Bumps [Microsoft.SourceLink.GitHub](https://github.com/dotnet/sourcelink) from 1.1.1 to 8.0.0.
- [Release notes](https://github.com/dotnet/sourcelink/releases)
- [Commits](https://github.com/dotnet/sourcelink/compare/1.1.1...8.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.SourceLink.GitHub
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1.4.372.91-preview
2023-11-30 21:09:33 +01:00
Martin Regen 65803c4967 Implement async reconnect (#2399)
- Implement the reconnect and republish with async service calls. 

bug fixes:
- subscription Ids should start from a random number
- the keep alive interval calculation is too short, adding +1 for the timeout
- on BadSessionIdInvalid recreate session immediately 
- on a restarted server with new certificate, also reload endpoints when BadCertificateInvalid is returned
2023-11-30 21:02:51 +01:00
dependabot[bot] 1437138550 Bump System.Text.Encodings.Web from 6.0.0 to 8.0.0 (#2386)
Bumps [System.Text.Encodings.Web](https://github.com/dotnet/runtime) from 6.0.0 to 8.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v6.0.0...v8.0.0)

---
updated-dependencies:
- dependency-name: System.Text.Encodings.Web
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-30 20:09:14 +01:00
Martin Regen 9138bb90e0 Support for subclassing of client sessions, subscriptions and monitored items (#2384)
Currently, due to some internal cloning of sessions, subscriptions and monitored items it is not possible to use subclassed variants which are properly recreated after a session reconnect.

- Add a  `ISessionInstantiator` interface to allow to subclass a `Session` and override virtual function.
- Add a `Subscription.CloneSubscription` and `MonitoredItem.CloneMonitoredItem` virtual method to recreate those with event handlers and client handles.
- A sample implementation with `TestableXXX` classes is provided to test the BadInvalidTimestamp fix by injecting modified timestamps in the session class.
- Remove duplicate `IDisposable` with `Session`. `IClientBase` is disposable already.
- adds `knownTypes` parameter to `Session.Load` and `Session.Save` to support save and restore of custom Subscriptions and Monitored items.

bug fixes:
- IOP: an empty DataTypeDictionary throws an exception when loaded by the complex type system, server are allowed to leave it empty to save memory.
- BadInvalidTimestamp should not be returned when the timestamp in the requestheader is out of sync. #2364
2023-11-28 21:17:56 +01:00
Martin Regen a109c81d22 fix .NET 8 build and warning (#2395)
Fix some warnings and build errors with .NET 8. To build as .NET 8, add net8.0 to target.props.
2023-11-27 18:35:47 +01:00
Martin Regen 8d1a366631 Fix for references that may cause a memory leak (#2345)
Root cause: Target's IsInverse flag which has incorrect value is used during the removal of source's reference 
Fix: Retrieve the source's reference by the targetId first and remove it.
2023-11-17 17:36:03 +01:00
romanett adafd2c03b GDS: add ArgumentException to Method CreateCACertificateAsync (#2336)
Introduces an exception, to notify the user when supplying an invalid argument to the method CreateCACertificateAsync
This exception was introduced, as in the current implementation the same subject name has to be used as in the configuration or else the certificate is not copied to the trusted store.
2023-11-17 15:27:28 +01:00
MarkusHorstmann eeea34f5a3 Array xmlns encoding/decoding always uses UA namespace(#2309)
XmlEncoder.WriteArray and XmlDecoder.ReadArray always use the OPC UA XML namespace (http://opcfoundation.org/UA/2008/02/Types.xsd) for the field element that contains the array, regardless of the namespace that the caller may have pushed.
2023-11-17 15:25:53 +01:00
Martin Regen 973d342b29 Implement the close async codepath (#2381)
- CloseAsync still used the 'Close' synchronous function
- remove a duplicate definition of IDisposable on ISession
- reduce the log output when the server publish time is out of sync
2023-11-17 14:41:26 +01:00
dependabot[bot] f73fbef790 Bump Serilog.Expressions from 3.4.1 to 4.0.0 (#2379)
Bumps [Serilog.Expressions](https://github.com/serilog/serilog-expressions) from 3.4.1 to 4.0.0.
- [Release notes](https://github.com/serilog/serilog-expressions/releases)
- [Commits](https://github.com/serilog/serilog-expressions/compare/v3.4.1...v4.0.0)

---
updated-dependencies:
- dependency-name: Serilog.Expressions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-17 09:13:32 +02:00
dependabot[bot] 37252f31b2 Bump Serilog.Sinks.Console from 4.1.0 to 5.0.0 (#2378)
Bumps [Serilog.Sinks.Console](https://github.com/serilog/serilog-sinks-console) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/serilog/serilog-sinks-console/releases)
- [Commits](https://github.com/serilog/serilog-sinks-console/compare/v4.1.0...v5.0.0)

---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-14 11:57:20 +02:00
dependabot[bot] 446bbd82d9 Bump Microsoft.NET.Test.Sdk from 17.7.2 to 17.8.0 (#2377)
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.7.2 to 17.8.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.7.2...v17.8.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 21:26:31 +01:00
dependabot[bot] 59d724e777 Bump Serilog from 3.0.1 to 3.1.1 (#2380)
Bumps [Serilog](https://github.com/serilog/serilog) from 3.0.1 to 3.1.1.
- [Release notes](https://github.com/serilog/serilog/releases)
- [Commits](https://github.com/serilog/serilog/compare/v3.0.1...v3.1.1)

---
updated-dependencies:
- dependency-name: Serilog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 17:09:47 +02:00
dependabot[bot] 764a57dcf0 Bump NUnit from 3.13.3 to 3.14.0 (#2369)
Bumps [NUnit](https://github.com/nunit/nunit) from 3.13.3 to 3.14.0.
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/master/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/v3.13.3...v3.14.0)

---
updated-dependencies:
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-08 13:59:06 +01:00
dependabot[bot] 3e6df20964 Bump BenchmarkDotNet from 0.13.9 to 0.13.10 (#2370)
Bumps [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) from 0.13.9 to 0.13.10.
- [Release notes](https://github.com/dotnet/BenchmarkDotNet/releases)
- [Commits](https://github.com/dotnet/BenchmarkDotNet/compare/v0.13.9...v0.13.10)

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-08 13:58:14 +01:00
Martin Regen 4c0880c800 Fix codesmells. No functional changes and bug fixes. (#2368)
Fix many warnings to improve code quality or simplify the code.
2023-11-07 10:34:42 +01:00
Martin Regen 71ad9afd1c Nested complex types which contain structure derived from an abstract type are not correctly encoded (#2349)
- bug: if the nested complex type is derived from an abstract type like a Union, the decoder uses the abstract type instead of the actual type to decode
- fix: the loop to determine the supertype of the type to be decoded stops too early and returns an invalid type reference, e.g. for Unions. Instead the loop will now continue until a valid BuiltInType or a Structure or Enumeration type is found.
2023-10-26 11:06:26 +02:00
Martin Regen d47bc853da Various async improvements and minor issues found in IOP testing (#2346)
- improve various log messages, comments etc.
- multiple internal improvements in naming convention handling of async functions
- add FetchSuperTypesAsync
- replace new UTFEncoding() with Encoding.UTF8 singleton
2023-10-20 21:29:03 +02:00
Martin Regen ec4c3cd323 Add property to disable auto certificate creation on app startup (#2348)
- Add a property to `ApplicationInstance` to `DisableCertificateAutoCreation`
- Add the test case to validate property function
- Refactor some private API to follow coding style with `Async`suffix
- By default behavior is unchanged
2023-10-20 14:26:48 +02:00
Noah Hölterhoff 77b1e9bfeb Added new DataTypes to Reference Server (#2340)
Three new DataTypes plus Variables containing them were added to the Reference Server:
- VectorUnion (as Scalar and Array): The VectorUnion contains three fields (X, Y, Z) and a SwitchField. When it is used as value, it is generated randomly (SwitchField set to None or one of the Fields)
- VectorWithOptionalFields (as Scalar and Array): The VectorWithOptionalFields contains again three fields (X, Y, Z), but they are all optional. When it is used as a value, it is generated with 0 to all fields activated.
- MultipleVectors (as Scalar and Array): The MultipleVectors type contains 6 Components. A regular Vector, a VectorUnion (from before), a VectorWithOptionalFields (also from before) and the same as Arrays.
2023-10-20 11:21:21 +02:00