From 24bd9d8bf7d10b9ed6a41deac93c4608fa0b6a6a Mon Sep 17 00:00:00 2001 From: Gerhard Gappmeier Date: Tue, 30 Oct 2018 09:52:25 +0100 Subject: Port to UASDKCPP-1.6.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This changes header search paths and library names, which now have a cpp suffix. The code has been changed to remove the folder prefix from the includes, which are not necessary for this UA SDK. Change-Id: I313bc7c0ed8d4a17f4190540bb913cb6484a1070 Reviewed-by: Jannis Völker Reviewed-by: Rainer Keller --- config.tests/uacpp/main.cpp | 6 +++--- src/opcua/configure.json | 10 +++++++--- src/opcua/configure.pri | 2 +- src/opcua/core/qopcuaprovider.cpp | 13 +++++++++++++ src/plugins/opcua/uacpp/quacppbackend.cpp | 11 +++++++---- src/plugins/opcua/uacpp/quacppbackend.h | 5 +++-- src/plugins/opcua/uacpp/quacppclient.cpp | 5 ++++- src/plugins/opcua/uacpp/quacppnode.h | 2 +- src/plugins/opcua/uacpp/quacppplugin.h | 2 +- src/plugins/opcua/uacpp/quacppsubscription.cpp | 2 +- src/plugins/opcua/uacpp/quacppsubscription.h | 4 ++-- src/plugins/opcua/uacpp/quacpputils.cpp | 2 +- src/plugins/opcua/uacpp/quacpputils.h | 2 +- src/plugins/opcua/uacpp/quacppvalueconverter.cpp | 16 ++++++++-------- src/plugins/opcua/uacpp/quacppvalueconverter.h | 5 ++++- tests/auto/qopcuaclient/tst_client.cpp | 7 ++++++- 16 files changed, 63 insertions(+), 31 deletions(-) diff --git a/config.tests/uacpp/main.cpp b/config.tests/uacpp/main.cpp index a09b37f..edda47f 100644 --- a/config.tests/uacpp/main.cpp +++ b/config.tests/uacpp/main.cpp @@ -36,9 +36,9 @@ #include -#include -#include -#include +#include +#include +#include using namespace UaClientSdk; diff --git a/src/opcua/configure.json b/src/opcua/configure.json index 1b4afcf..a2b375a 100644 --- a/src/opcua/configure.json +++ b/src/opcua/configure.json @@ -35,15 +35,19 @@ { "type": "uacpp", "builds": { - "debug": "-luaclientd -luabased -lcoremoduled -luastackd -luapkid -lxmlparserd", - "release": "-luaclient -luabase -lcoremodule -luastack -luapki -lxmlparser" + "debug": "-luaclientcppd -luabasecppd -luastackd -luapkicppd -lxmlparsercppd", + "release": " -luaclientcpp -luabasecpp -luastack -luapkicpp -lxmlparsercpp" }, "libs": "-lCrypt32 -lOle32 -lOleAut32 -lws2_32 -llibeay32 -llibxml2", "condition": "config.win32 && var.QT_EDITION != 'OpenSource'" }, { "type": "uacpp", - "libs": "-luaclient -luamodule -luamodels -lcoremodule -luabase -luastack -lxmlparser -luapki -lcrypto -lssl -lxml2", + "builds": { + "debug": "-luaclientcppd -luabasecppd -luastackd -luapkicppd -lxmlparsercppd", + "release": "-luaclientcpp -luabasecpp -luastack -luapkicpp -lxmlparsercpp" + }, + "libs": "-lcrypto -lssl -lxml2", "condition": "!config.win32 && var.QT_EDITION != 'OpenSource'" } ] diff --git a/src/opcua/configure.pri b/src/opcua/configure.pri index be9a7f9..0243e7b 100644 --- a/src/opcua/configure.pri +++ b/src/opcua/configure.pri @@ -23,7 +23,7 @@ defineTest(qtConfLibrary_uacpp) { inc = $${prefix}/include !isEmpty(inc) { config.input.$${input}.incdir += \ - $$inc/uabase $$inc/uaclient $$inc/uastack $$inc/uapki + $$inc/uabasecpp $$inc/uaclientcpp $$inc/uastack $$inc/uapkicpp } else { qtLog("No UACPP_PREFIX and no UACPP_INCDIR specified; relying on global include paths.") } diff --git a/src/opcua/core/qopcuaprovider.cpp b/src/opcua/core/qopcuaprovider.cpp index acb8b16..ea17902 100644 --- a/src/opcua/core/qopcuaprovider.cpp +++ b/src/opcua/core/qopcuaprovider.cpp @@ -199,6 +199,19 @@ static QOpcUaPlugin *loadPlugin(const QString &key) The optional argument \c backendProperties can be used to pass custom backend specific settings as key value pairs. Those settings are specific to the backend being instantiated. + + Available settings are + \table + \header + \li Setting string + \li Backend + \li Description + \row + \li disableEncryptedPasswordCheck + \li Unified Automation + \li By default, the backend refuses to connect to endpoints without encryption to avoid + sending passwords in clear text. This parameter allows to disable this feature. + \endtable */ QOpcUaClient *QOpcUaProvider::createClient(const QString &backend, const QVariantMap &backendProperties) { diff --git a/src/plugins/opcua/uacpp/quacppbackend.cpp b/src/plugins/opcua/uacpp/quacppbackend.cpp index 4e21535..527041e 100644 --- a/src/plugins/opcua/uacpp/quacppbackend.cpp +++ b/src/plugins/opcua/uacpp/quacppbackend.cpp @@ -34,10 +34,11 @@ #include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include @@ -201,6 +202,8 @@ void UACppAsyncBackend::connectToEndpoint(const QUrl &url) UaString username(url.userName().toUtf8().constData()); UaString password(url.password().toUtf8().constData()); sessionSecurityInfo.setUserPasswordUserIdentity(username, password); + if (m_disableEncryptedPasswordCheck) + sessionSecurityInfo.disableEncryptedPasswordCheck = OpcUa_True; } result = m_nativeSession->connect(uaUrl, sessionConnectInfo, sessionSecurityInfo, this); diff --git a/src/plugins/opcua/uacpp/quacppbackend.h b/src/plugins/opcua/uacpp/quacppbackend.h index a8b9b97..99ad5be 100644 --- a/src/plugins/opcua/uacpp/quacppbackend.h +++ b/src/plugins/opcua/uacpp/quacppbackend.h @@ -29,8 +29,8 @@ #include #include -#include -#include +#include +#include QT_BEGIN_NAMESPACE @@ -78,6 +78,7 @@ public: static bool m_platformLayerInitialized; QMutex m_lifecycleMutex; double m_minPublishingInterval; + bool m_disableEncryptedPasswordCheck{false}; }; QT_END_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppclient.cpp b/src/plugins/opcua/uacpp/quacppclient.cpp index 2fb0922..c7d4772 100644 --- a/src/plugins/opcua/uacpp/quacppclient.cpp +++ b/src/plugins/opcua/uacpp/quacppclient.cpp @@ -40,7 +40,10 @@ QUACppClient::QUACppClient(const QVariantMap &backendProperties) : QOpcUaClientImpl() , m_backend(new UACppAsyncBackend(this)) { - Q_UNUSED(backendProperties); + if (backendProperties.value(QLatin1String("disableEncryptedPasswordCheck"), false).toBool()) { + qCDebug(QT_OPCUA_PLUGINS_UACPP) << "Disabling encrypted password check."; + m_backend->m_disableEncryptedPasswordCheck = true; + } m_thread = new QThread(); connectBackendWithClient(m_backend); diff --git a/src/plugins/opcua/uacpp/quacppnode.h b/src/plugins/opcua/uacpp/quacppnode.h index f8e7220..71f0900 100644 --- a/src/plugins/opcua/uacpp/quacppnode.h +++ b/src/plugins/opcua/uacpp/quacppnode.h @@ -28,7 +28,7 @@ #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppplugin.h b/src/plugins/opcua/uacpp/quacppplugin.h index 801f12c..e8c7513 100644 --- a/src/plugins/opcua/uacpp/quacppplugin.h +++ b/src/plugins/opcua/uacpp/quacppplugin.h @@ -24,7 +24,7 @@ #include "qopcuaplugin.h" -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppsubscription.cpp b/src/plugins/opcua/uacpp/quacppsubscription.cpp index a4a8edf..0ab9bfa 100644 --- a/src/plugins/opcua/uacpp/quacppsubscription.cpp +++ b/src/plugins/opcua/uacpp/quacppsubscription.cpp @@ -26,7 +26,7 @@ #include -#include +#include #include using namespace UaClientSdk; diff --git a/src/plugins/opcua/uacpp/quacppsubscription.h b/src/plugins/opcua/uacpp/quacppsubscription.h index e3a7450..cf4c1bf 100644 --- a/src/plugins/opcua/uacpp/quacppsubscription.h +++ b/src/plugins/opcua/uacpp/quacppsubscription.h @@ -24,8 +24,8 @@ #include -#include -#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacpputils.cpp b/src/plugins/opcua/uacpp/quacpputils.cpp index 4d5853e..c5661f9 100644 --- a/src/plugins/opcua/uacpp/quacpputils.cpp +++ b/src/plugins/opcua/uacpp/quacpputils.cpp @@ -27,7 +27,7 @@ #include #include -#include +#include #include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacpputils.h b/src/plugins/opcua/uacpp/quacpputils.h index 7ee4a45..8358acc 100644 --- a/src/plugins/opcua/uacpp/quacpputils.h +++ b/src/plugins/opcua/uacpp/quacpputils.h @@ -24,7 +24,7 @@ #include -#include +#include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp index 5aa4f5c..6b950da 100644 --- a/src/plugins/opcua/uacpp/quacppvalueconverter.cpp +++ b/src/plugins/opcua/uacpp/quacppvalueconverter.cpp @@ -28,14 +28,14 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include QT_BEGIN_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppvalueconverter.h b/src/plugins/opcua/uacpp/quacppvalueconverter.h index 341ca72..d4736db 100644 --- a/src/plugins/opcua/uacpp/quacppvalueconverter.h +++ b/src/plugins/opcua/uacpp/quacppvalueconverter.h @@ -27,7 +27,10 @@ #include -#include +#include +#include // for UaStringArray + +class UaLocalizedText; QT_BEGIN_NAMESPACE diff --git a/tests/auto/qopcuaclient/tst_client.cpp b/tests/auto/qopcuaclient/tst_client.cpp index 0262d1f..4dbaa15 100644 --- a/tests/auto/qopcuaclient/tst_client.cpp +++ b/tests/auto/qopcuaclient/tst_client.cpp @@ -49,6 +49,7 @@ #include #include #include +#include class OpcuaConnector { @@ -535,7 +536,11 @@ void Tst_QOpcUaClient::initTestCase() const QHostAddress defaultHost(QHostAddress::LocalHost); for (const auto &backend: m_backends) { - QOpcUaClient *client = m_opcUa.createClient(backend); + QVariantMap backendOptions; + if (backend == QLatin1String("uacpp")) + backendOptions.insert(QLatin1String("disableEncryptedPasswordCheck"), true); + + QOpcUaClient *client = m_opcUa.createClient(backend, backendOptions); QVERIFY2(client != nullptr, QString("Loading backend failed: %1").arg(backend).toLatin1().data()); client->setParent(this); -- cgit v1.2.3