aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRyan Chu <ryan.chu@qt.io>2018-06-15 10:15:30 +0200
committerRyan Chu <ryan.chu@qt.io>2018-06-18 15:24:36 +0000
commit462351a928b546087d009bf7c9fd50dd091be303 (patch)
treea4772e2858afda280c1e54a8330301f5f082c959 /src
parent7a5d72b2c59a157305c139b54cdb09c34d99e727 (diff)
Create kaltiot_daemon_path option to set the path of Kaltiot daemon
When calling the ks_gw_client_connect function of Kaltiot library with NULL path, the Kaltiot library will connect to the default Unix domain socket at /tmp/ks_client_socket which needs root permission. The problem is that there is no alternative option for the user to change the value of path. To make it flexible, I create an option (kaltiot_daemon_path) of client parameter to set the path when connecting a client id to the Kaltiot-service provider. This option lets the Kaltiot library connect to the port which Kaltiot daemon is listening on. Change-Id: Ia90a8ffa8b7e4059acfad4811f8e3177f6223179 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Ryan Chu <ryan.chu@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Ari Salmi <snowgrains@snowgrains.com>
Diffstat (limited to 'src')
-rw-r--r--src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient.cpp8
-rw-r--r--src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient.cpp b/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient.cpp
index 6a239b7..f43cda9 100644
--- a/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient.cpp
+++ b/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient.cpp
@@ -79,6 +79,7 @@ QString QCloudMessagingEmbeddedKaltiotClient::connectClient(const QString &clien
d->m_address = params.value(QStringLiteral("address")).toString();
d->m_version = params.value(QStringLiteral("version")).toString();
d->m_customer_id = params.value(QStringLiteral("customer_id")).toString();
+ d->daemonIpcPath = params.value(QStringLiteral("kaltiot_daemon_path")).toString();
channels = params.value(QStringLiteral("channels")).toStringList();
@@ -143,7 +144,12 @@ bool QCloudMessagingEmbeddedKaltiotClient::make_kaltiot_client_registration()
ks_gw_client_init(&d->m_kaltiot_client_instance);
- if (!ks_gw_client_connect(&d->m_kaltiot_client_instance, NULL))
+ const char *connectPath = nullptr;
+ QByteArray daemonIpcByteArray = d->daemonIpcPath.toLatin1();
+ if (!daemonIpcByteArray.isEmpty())
+ connectPath = daemonIpcByteArray.constData();
+
+ if (!ks_gw_client_connect(&d->m_kaltiot_client_instance, connectPath))
return false; // Failed to connect!;
if (d->m_rid.isEmpty()) {
diff --git a/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h b/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h
index f92b52a..2a1065d 100644
--- a/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h
+++ b/src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h
@@ -77,6 +77,7 @@ public:
QThread m_clientThread;
QTimer m_threadTimer;
ks_gw_client_instance_t m_kaltiot_client_instance;
+ QString daemonIpcPath;
};
QT_END_NAMESPACE