summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2017-03-29 09:55:40 +0200
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2017-03-29 09:55:40 +0200
commit917426bfb6cf874bf2977c5361087b6cf007f1c0 (patch)
treefbc8f74f1c343c3c9310105e04464b47ff33ad13 /examples
parent0806da33b910dbc0f211d4bd3eef96f6645db4d1 (diff)
Fix potential crashes
In case of no active connection, transport might be nullptr as well, causing either a nullptr reference or other side-effects. Also the example applications should verify that a subscription succeeded.
Diffstat (limited to 'examples')
-rw-r--r--examples/mqtt/simpleclient/mainwindow.cpp10
-rw-r--r--examples/mqtt/subscriptions/mainwindow.cpp8
2 files changed, 15 insertions, 3 deletions
diff --git a/examples/mqtt/simpleclient/mainwindow.cpp b/examples/mqtt/simpleclient/mainwindow.cpp
index f6d35ad..c7e2efa 100644
--- a/examples/mqtt/simpleclient/mainwindow.cpp
+++ b/examples/mqtt/simpleclient/mainwindow.cpp
@@ -3,6 +3,7 @@
#include <QtCore/QDateTime>
#include <QtMqtt/QMqttClient>
+#include <QtWidgets/QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
@@ -88,12 +89,17 @@ void MainWindow::setClientPort(int p)
void MainWindow::on_buttonPublish_clicked()
{
- m_client->publish(ui->lineEditTopic->text(), ui->lineEditMessage->text().toUtf8());
+ if (!m_client->publish(ui->lineEditTopic->text(), ui->lineEditMessage->text().toUtf8()))
+ QMessageBox::critical(this, QLatin1String("Error"), QLatin1String("Could not publish message"));
}
void MainWindow::on_buttonSubscribe_clicked()
{
- m_client->subscribe(ui->lineEditTopic->text());
+ auto subscription = m_client->subscribe(ui->lineEditTopic->text());
+ if (!subscription) {
+ QMessageBox::critical(this, QLatin1String("Error"), QLatin1String("Could not subscribe. Is there a valid connection?"));
+ return;
+ }
}
void MainWindow::on_buttonPing_clicked()
diff --git a/examples/mqtt/subscriptions/mainwindow.cpp b/examples/mqtt/subscriptions/mainwindow.cpp
index d125297..078c6f0 100644
--- a/examples/mqtt/subscriptions/mainwindow.cpp
+++ b/examples/mqtt/subscriptions/mainwindow.cpp
@@ -4,6 +4,7 @@
#include <QtCore/QDateTime>
#include <QtMqtt/QMqttClient>
+#include <QtWidgets/QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
@@ -90,12 +91,17 @@ void MainWindow::setClientPort(int p)
void MainWindow::on_buttonPublish_clicked()
{
- m_client->publish(ui->lineEditTopic->text(), ui->lineEditMessage->text().toUtf8(), ui->spinQoS_2->text().toUInt());
+ if (!m_client->publish(ui->lineEditTopic->text(), ui->lineEditMessage->text().toUtf8(), ui->spinQoS_2->text().toUInt()))
+ QMessageBox::critical(this, QLatin1String("Error"), QLatin1String("Could not publish message"));
}
void MainWindow::on_buttonSubscribe_clicked()
{
auto subscription = m_client->subscribe(ui->lineEditTopic->text(), ui->spinQoS->text().toUInt());
+ if (!subscription) {
+ QMessageBox::critical(this, QLatin1String("Error"), QLatin1String("Could not subscribe. Is there a valid connection?"));
+ return;
+ }
auto subWindow = new SubscriptionWindow(subscription);
subWindow->setWindowTitle(subscription->topic());
subWindow->show();