Commit Graph
172 Commits
Author SHA1 Message Date
Martin Regen d31c8cc6e4 - implement a few TODO (#859)
- bugfixes found in testing
2019-12-02 16:29:25 +01:00
AlinMoldovean 77a183ec6b Nonce validation fix in Client Session. The minimum nonce length should be 32 in CreateSession and ActivateSession responses. 2019-11-28 19:10:07 +02:00
Martin Regen 39dca2c103 Complex Types client library (#849)
Adds a complex type system client library extension for custom enumerations and structure types based on a server dictionary or DataTypeDefinition using emitted classes at runtime. 

- Custom types are added to the session factory, not to the global factory. Types are loaded when the session connects by adding 
`                var complexTypeSystem = new ComplexTypeSystem(session);
                await complexTypeSystem.Load();
`
- Custom type properties can be accessed with an accessor [propertyname] or [index]. Direct access through the properties is possible, but some cases do not update the optional or union flags correctly.
- Support includes V1.03 dictionaries and V1.04 DataTypeDefinitions (--> known issues).
- NetCoreComplexClient can be used for quick testing servers. It prints out all custom types with content and subscribes to all. Also includes sample how to write back complex type variables and how to output JSON.
- The UA Sample Client and the Quickstart Data Type client can be used for testing with UI. Many issues were adressed to be able to read and write complex types, however some support is limited, e.g. only editing simple fields is currently working (help wanted).
- Caveat: The complex type libaries for .Net Core must be built for .netcoreapp, so it needs a seperate nuget package for the complex type client extension.
- Support for a factory type builder class to allow to plugin other type builder methods (e.g. Codedom etc...)
- Added JSON test case and include the complex types client in the testing shell script, so the complex types lib is tested on mac/linux too.
- Few fixes in the JSON encoder.

Finding enough servers with custom types is an issue, so if you find servers with unsupported custom types please provide feedback.

Known limitations:
- Only V1.03 OPC binary dictionaries are supported (no XML Schema dictionaries).
- V1.03 dictionary structure definitions are only supported if they can be mapped to a V1.04 DataTypeDefinition. Nested types and cross dictionary refs should work.
- OptionSet is only partially implemented. Only shows the byte arrays, not the flags.
- Opaque Types in dictionaries are ignored.
2019-11-20 16:05:24 +01:00
AlinMoldovean 8504055a83 Add server nonce validation in Client session. 2019-11-12 17:00:07 +02:00
Andrew Field d7130a97d4 Spelling (#840) 2019-11-05 10:07:52 +02:00
Martin Regen ef06464776 fix schema validator and dictionary loader (only binary) (#833)
* fix schema validator and dictionary loader (only binary scheme)
# include some .bsd files for validation
* add check for some configuration fields, to return a meaningful error.
2019-10-29 18:16:37 +01:00
AlinMoldovean 14869582e4 Client Session KeepAlive fix - outstanding publish requests should not stop keep alive reads. 2019-10-03 16:55:44 +03:00
AlinMoldovean df0cc4287d #791 - Update UA NodeSets and generated code with the latest updates for V1.04.3 Errata. 2019-10-02 17:44:53 +03:00
Alin Moldovean efd66a2acb Save server certificate in ClientSession if no encryption is required. (#813)
* Fix build order in UA Quickstart Applications.sln

* Fixes #800. Save server certificate in client Session even if no encryption is required.
2019-10-01 06:47:51 +03:00
AlinMoldovean b1c0293fb4 Fixes #796 2019-09-19 17:55:07 +03:00
ejoseca de838b727a Fixes saving client session to XML. (#757)
Fixed bug in Opc.Ua.Client.Save method.
2019-07-22 16:08:50 +03:00
AlinMoldovean e257ba07df Fix to avoid timer interval higher than Int32.MaxValue in ClientSubscription.StartKeepAliveTimer() 2019-06-19 16:19:02 +03:00
Chris Law 92fa5182ae Change to catch error from validating the server certificate. Fixing #710 and #678. (#739) 2019-06-10 15:58:24 +03:00
Alin Moldovean 40db29f3a2 Fixes #703.
Fix regression caused by #656. Add a MonitoredItem constructor to allow keeping the ClientHandle of the template. (#704)
2019-04-17 10:03:19 +03:00
Alin Moldovean 0a6b1cb3e3 CTT compliance fixes. (#702) 2019-04-15 11:58:23 +03:00
Bilge Kaan KAZAZ ef4c918494 Fixes the wrong DisplayName issue of a MonitoredItem after reconnect 2019-03-22 21:50:11 +03:00
Alin Moldovean cbeb24eb5e Merge pull request #652 from jh-isw/master
correct indentation
2019-02-28 13:45:52 +02:00
julien 593aefd3b3 Fix Wrong clientHandle when reconnecting a session ; the clone / template procedures where not keeping this precious unique identifier. 2019-02-19 10:28:15 +01:00
Jan Hecht 8af6c278c5 correct indentation 2019-02-17 18:07:48 +01:00
AlinMoldovean 8b374a7448 Copyright year set to 2019 in license notices. 2019-02-14 12:34:33 +02:00
Ahmed Ashour 0203717182 Update Session.cs (#622)
Fix typos
2019-01-14 15:19:17 +02:00
Alin Moldovean b8d911c569 Updates for V1.04 attributes in Client and Server (#614)
* Update for 1.04 attributes in ClientSession.ReadNode()

* Fix in ClientSession.ReadNode()

* Updates for 1.04 Attributes in server.

* Discard inner value for attributes with bad status codes in ClientSession.ReadNode().

* Remove unused attribute from AttributeWriteMask
2018-12-17 12:53:19 +02:00
Camille Guérin 3546e56e05 Fixed GetServiceResult null checks
Fixed wrong null checks for Notification message in GetServiceResult(IEncodeable notification) and GetServiceResult(IEncodeable notification, int index)
2018-11-14 09:57:19 +01:00
Alin Moldovean d87df993f3 Merge pull request #576 from AlinMoldovean/master
Allow access to node managers from MasterNodeManager + IOP issue fix
2018-10-29 12:39:00 +02:00
Martin Regen d007a41d15 Add Aes profile support (#574)
* add the Aes128 and Aes256 profiles
* Aes profies were tested on IoP workshop against Ascolab, Softing, Matrikon, Milo, ProSys and others
* Pss padding is not supported on all platforms, so autodetect if it is supported and filter out Aes256 if not
* not a breaking change: not specifying the SecurityProfileUri in the config xml will automatically add all supported profiles but not deprecated profiles (e.g. Basic256Sha256, Aes128, Aes256). Aes256 is only added if the platform supports Pss padding. This will simplify the maintenance of config xml, since automatically all supported and secure profiles are exposed.
2018-10-29 09:58:45 +01:00
AlinMoldovean 8e5b34a91b fixes issue #533 allow access to NodeManagers of MasterNodeManager. 2018-10-26 11:04:32 +02:00
AlinMoldovean 9e74131f3b Do not discard ClientSession in case FetchNamespaceTables() goes in error. 2018-10-26 10:45:58 +02:00
Martin Regen ced33e1957 Improvements for cloud based Gds and V1.04 nodes (#508)
- all changes for cloud based GDS
 - build version of .net standard libs is now set in version.props, it may require updates for the official builds.
  - add new stuff for v1.04 nodeset, e.g. QueryApplications Api
  - gds.client/gds.server common dll changes to support a cloud based GDS.
2018-07-31 13:32:21 +02:00
Alin Moldovean 92bef97e51 Fix for Mantix #4321 + deprecated security polices removed from config.xml files (#505)
* Fix for Mantis #4231. Refuse to use untrusted certificates to encrypt user identity tokens sent to servers.

* Deprecated security policies removed from default server config.xml files.
2018-07-18 08:28:07 +03:00
Pierre-Alain GALTIER 30cb2cf7fe Add lifeTimeInMonths capability to CheckApplicationInstanceCertificate. 2018-06-11 17:38:49 +02:00
Oyvind Landsnes 79f4da032c AddReferences method returns too early
The AddRefrences method exists in similar versions in several of the sample node manager classes. The method loops through a list of (external) references and adds them to the designated objects. When obtaining node handles it also checks that the node is valid in the current context. The problem was that it skipped the rest of  the nodes in the list as soon as it found one node that wass not valid. This change ensures that all nodes in the references list are processed.
2018-05-24 19:38:53 +02:00
Oyvind Landsnes d15e38212f fix(CustomNodemanager): AddReferences method returns too early
The AddRefrences method loops through a list of (external) references and adds them to the designated objects. When obtaining node handles it also checks that the node belongs to one of the namspaces for the  current node manager. The problem was that it skipped the rest of  the nodes in the list as soon as it found one node that did not belong to the currennt node manager.
2018-05-21 15:54:56 +02:00
AlinMoldovean 49fb32fdce Assembly version set to 1.04.353 2018-05-03 15:11:48 +03:00
AlinMoldovean 27ff681320 Assembly version set to 1.03.352 2018-03-29 16:23:01 +03:00
Martin Regen e2a4020984 Fix V103 nohttps build (#401)
- Fix the NO_HTTPS build to reduce publish size if HTTPS is not needed
e.g. `dotnet build /p:NoHttps=true`
- Limit language Version to C#6 for VS 2015 compat
- add travis & appveyor cases for nohttps build
- enable GDS Https transport
- update nuspec
2018-03-16 10:21:32 +01:00
AlinMoldovean b5b2d54971 Fixes after CR. 2018-03-08 12:23:20 +02:00
AlinMoldovean 17dc14bcc5 Implement #362 - Certificate chain support. 2018-03-07 18:44:00 +02:00
Martin Regen 4d05093462 Clean up nuget dependencies (#353)
- remove dependency on System.Private.ServiceModel, it should not be used directly
- remove packages.config, VS2017 doesn't need it
- use ref to .Net instead of nuget to reduce number of packages used
2018-02-16 19:14:12 +01:00
Martin Regen 5063ac0907 Console client improvements (#343)
* use config file for console sample
* filter unsupported security policies
* add reconnect handler
2018-02-06 14:15:16 +01:00
Martin Regen aaea8d28aa remove LEGACY_CORENODEMNAGER (#335) 2018-02-02 10:26:51 +01:00
Martin Regen dbef06aa82 Fix ip address parser, domain name check and reconnect (#333)
* bug fix in cert parser: return normalized ipaddress string instead of hex byte array string
* connect with domain cert check,
* fix ip address compares,
* add dialog to connect anyway if cert domain check fails
* fix reconnect case when cert domain check fails
2018-01-25 08:55:26 -07:00
Martin Regen cebc4f190b Add ServerCap & hostname RegisterServer2 LDS-ME registration (#322)
* Add ServerCap & hostname RegisterServer 2 LDS-ME registration

* GDS always register with LDS-ME
2018-01-11 14:38:12 +01:00
Martin Regen d72a9f2361 bump up for next release 1.03.351 2018-01-05 17:04:43 +01:00
Martin Regen b627b89797 Merge version update from 1.03 2018-01-05 16:42:19 +01:00
Martin Regen b4d0c3200f Change versioning to allow for patching of nuget packages (#312)
* Fix library versions

* version properly for strong names
2018-01-05 16:31:05 +01:00
Martin Regen 13b9f00dd3 Add Quickstart Applications from .NET repo
building..
unify the way .Net apps are started
2018-01-05 16:24:56 +01:00
Martin Regen 33c8c4d4c2 Merge pull request #284 from mregen/gds_work_certs
GDS Server updates and Standard server push configuration
2017-12-08 22:56:34 +01:00
Martin Regen 4345640c03 Fix CR feedback & travis macOS build fix (#36)
* improve gds creation test, verifiy integrity of returned certs

* split test runs to avoid file handle problem on macOS

* cr feedback
2017-12-08 22:55:27 +01:00
Martin Regen eeec2a8389 Update cert without restarting the TCP listener 2017-12-07 12:05:31 +01:00
Martin Regen 9926e40be8 my own CR feedback 2017-12-06 16:55:43 +01:00