aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-04-01 11:54:12 +0200
committerThomas Vanbesien <tvanbesi@proton.me>2026-04-01 11:54:12 +0200
commited9025f03aa6fcbf720f4e022f3594c85de0a385 (patch)
treee8ce6b3cd42a74172ba69eb6d9aa6ed31ccde8f8 /src
parentf3beb1624c24012c246d17a40c4e10c1c6b3b5b5 (diff)
downloadBobinkQtOpcUa-ed9025f03aa6fcbf720f4e022f3594c85de0a385.tar.gz
BobinkQtOpcUa-ed9025f03aa6fcbf720f4e022f3594c85de0a385.zip
Check all unchecked return values and guard error pathsHEADmaster
Diffstat (limited to 'src')
-rw-r--r--src/OpcUaClient.cpp22
-rw-r--r--src/OpcUaMonitoredNode.cpp26
2 files changed, 32 insertions, 16 deletions
diff --git a/src/OpcUaClient.cpp b/src/OpcUaClient.cpp
index d212ab2..8835a08 100644
--- a/src/OpcUaClient.cpp
+++ b/src/OpcUaClient.cpp
@@ -173,7 +173,11 @@ OpcUaClient::connectToServer ()
QStringLiteral ("Invalid server URL: %1").arg (m_serverUrl));
return;
}
- m_client->requestEndpoints (url);
+ if (!m_client->requestEndpoints (url))
+ {
+ emit connectionError (
+ QStringLiteral ("Failed to send endpoint request"));
+ }
}
void
@@ -354,11 +358,14 @@ OpcUaClient::handlePasswordRequired (QString keyFilePath, QString *password,
m_keyPassword.clear ();
emit privateKeyPasswordRequired (keyFilePath, previousTryWasInvalid);
- QEventLoop loop;
- m_keyPassLoop = &loop;
- QTimer::singleShot (30000, &loop, &QEventLoop::quit);
- loop.exec ();
- m_keyPassLoop = nullptr;
+ if (m_keyPassword.isEmpty ())
+ {
+ QEventLoop loop;
+ m_keyPassLoop = &loop;
+ QTimer::singleShot (30000, &loop, &QEventLoop::quit);
+ loop.exec ();
+ m_keyPassLoop = nullptr;
+ }
*password = m_keyPassword;
}
@@ -448,7 +455,8 @@ OpcUaClient::doDiscovery ()
QUrl url (m_discoveryUrl);
if (!url.isValid ())
return;
- m_client->findServers (url);
+ if (!m_client->findServers (url))
+ emit statusMessage (QStringLiteral ("Failed to send discovery request"));
}
void
diff --git a/src/OpcUaMonitoredNode.cpp b/src/OpcUaMonitoredNode.cpp
index beec934..1c125fc 100644
--- a/src/OpcUaMonitoredNode.cpp
+++ b/src/OpcUaMonitoredNode.cpp
@@ -132,7 +132,7 @@ OpcUaMonitoredNode::setupNode ()
return;
auto *client = OpcUaClient::instance ();
- if (!client || !client->connected ())
+ if (!client || !client->connected () || !client->opcuaClient ())
return;
m_node = client->opcuaClient ()->node (m_nodeId);
@@ -152,12 +152,14 @@ OpcUaMonitoredNode::setupNode ()
connect (m_node, &QOpcUaNode::disableMonitoringFinished, this,
&OpcUaMonitoredNode::handleDisableMonitoringFinished);
- m_node->readAttributes (
- QOpcUa::NodeAttribute::DisplayName | QOpcUa::NodeAttribute::Description
- | QOpcUa::NodeAttribute::NodeClass | QOpcUa::NodeAttribute::DataType
- | QOpcUa::NodeAttribute::ValueRank
- | QOpcUa::NodeAttribute::ArrayDimensions
- | QOpcUa::NodeAttribute::AccessLevel);
+ if (!m_node->readAttributes (QOpcUa::NodeAttribute::DisplayName
+ | QOpcUa::NodeAttribute::Description
+ | QOpcUa::NodeAttribute::NodeClass
+ | QOpcUa::NodeAttribute::DataType
+ | QOpcUa::NodeAttribute::ValueRank
+ | QOpcUa::NodeAttribute::ArrayDimensions
+ | QOpcUa::NodeAttribute::AccessLevel))
+ qWarning () << "OpcUaMonitoredNode: readAttributes failed for" << m_nodeId;
if (m_monitored)
startMonitoring ();
@@ -195,7 +197,10 @@ OpcUaMonitoredNode::startMonitoring ()
if (!m_node || !m_monitored)
return;
QOpcUaMonitoringParameters params (m_publishingInterval);
- m_node->enableMonitoring (QOpcUa::NodeAttribute::Value, params);
+ if (!m_node->enableMonitoring (QOpcUa::NodeAttribute::Value, params))
+ qWarning ()
+ << "OpcUaMonitoredNode: enableMonitoring failed to dispatch for"
+ << m_nodeId;
}
void
@@ -203,7 +208,10 @@ OpcUaMonitoredNode::stopMonitoring ()
{
if (!m_node)
return;
- m_node->disableMonitoring (QOpcUa::NodeAttribute::Value);
+ if (!m_node->disableMonitoring (QOpcUa::NodeAttribute::Value))
+ qWarning ()
+ << "OpcUaMonitoredNode: disableMonitoring failed to dispatch for"
+ << m_nodeId;
}
/* ======================================