summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerhard Gappmeier <gerhard.gappmeier@ascolab.com>2018-10-30 09:52:25 +0100
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2019-01-08 09:46:47 +0000
commit24bd9d8bf7d10b9ed6a41deac93c4608fa0b6a6a (patch)
tree5ab7f7a08e78c43046075f357f16d13957302517
parenteccc4e4ec11159a921e217a465cc72704ebe49d8 (diff)
Port to UASDKCPP-1.6.x
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 <jannis.voelker@basyskom.com> Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
-rw-r--r--config.tests/uacpp/main.cpp6
-rw-r--r--src/opcua/configure.json10
-rw-r--r--src/opcua/configure.pri2
-rw-r--r--src/opcua/core/qopcuaprovider.cpp13
-rw-r--r--src/plugins/opcua/uacpp/quacppbackend.cpp11
-rw-r--r--src/plugins/opcua/uacpp/quacppbackend.h5
-rw-r--r--src/plugins/opcua/uacpp/quacppclient.cpp5
-rw-r--r--src/plugins/opcua/uacpp/quacppnode.h2
-rw-r--r--src/plugins/opcua/uacpp/quacppplugin.h2
-rw-r--r--src/plugins/opcua/uacpp/quacppsubscription.cpp2
-rw-r--r--src/plugins/opcua/uacpp/quacppsubscription.h4
-rw-r--r--src/plugins/opcua/uacpp/quacpputils.cpp2
-rw-r--r--src/plugins/opcua/uacpp/quacpputils.h2
-rw-r--r--src/plugins/opcua/uacpp/quacppvalueconverter.cpp16
-rw-r--r--src/plugins/opcua/uacpp/quacppvalueconverter.h5
-rw-r--r--tests/auto/qopcuaclient/tst_client.cpp7
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 <stdio.h>
-#include <uabase/uaplatformlayer.h>
-#include <uabase/uastring.h>
-#include <uaclient/uasession.h>
+#include <uaplatformlayer.h>
+#include <uastring.h>
+#include <uasession.h>
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 <QtNetwork/QHostInfo>
-#include <uabase/uaplatformlayer.h>
-#include <uaclient/uasession.h>
-#include <uabase/uastring.h>
-#include <uaclient/uadiscovery.h>
+#include <uaplatformlayer.h>
+#include <uasession.h>
+#include <uastring.h>
+#include <uadiscovery.h>
+#include <uadatavalue.h>
#include <limits>
@@ -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 <QtCore/QString>
#include <QtCore/QTimer>
-#include <uabase/uabase.h>
-#include <uaclient/uaclientsdk.h>
+#include <uabase.h>
+#include <uaclientsdk.h>
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 <QtCore/QPointer>
-#include <uabase/uanodeid.h>
+#include <uanodeid.h>
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 <uabase/uanodeid.h>
+#include <uanodeid.h>
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 <QtCore/QLoggingCategory>
-#include <uaclient/uasession.h>
+#include <uasession.h>
#include <uaeventfilterresult.h>
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 <quacppbackend.h>
-#include <uabase/uanodeid.h>
-#include <uaclient/uasubscription.h>
+#include <uanodeid.h>
+#include <uasubscription.h>
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 <QtCore/QString>
#include <QtCore/QUuid>
-#include <uabase/uaguid.h>
+#include <uaguid.h>
#include <cstring>
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 <QtCore/qstring.h>
-#include <uabase/uanodeid.h>
+#include <uanodeid.h>
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 <QtCore/QLoggingCategory>
#include <QtCore/QUuid>
-#include <uabase/uastring.h>
-#include <uabase/ualocalizedtext.h>
-#include <uabase/uadatetime.h>
-#include <uabase/uaguid.h>
-#include <uabase/uavariant.h>
-#include <uabase/uaextensionobject.h>
-#include <uabase/uaeuinformation.h>
-#include <uabase/uaaxisinformation.h>
+#include <uastring.h>
+#include <ualocalizedtext.h>
+#include <uadatetime.h>
+#include <uaguid.h>
+#include <uavariant.h>
+#include <uaextensionobject.h>
+#include <uaeuinformation.h>
+#include <uaaxisinformation.h>
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 <QtCore/QVariant>
-#include <uabase/uanodeid.h>
+#include <uanodeid.h>
+#include <uaarraytemplates.h> // 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 <QtTest/QtTest>
#include <QTcpSocket>
#include <QTcpServer>
+#include <QVariantMap>
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);