diff options
author | Ryan Chu <ryan.chu@qt.io> | 2018-06-15 10:15:30 +0200 |
---|---|---|
committer | Ryan Chu <ryan.chu@qt.io> | 2018-06-18 15:24:36 +0000 |
commit | 462351a928b546087d009bf7c9fd50dd091be303 (patch) | |
tree | a4772e2858afda280c1e54a8330301f5f082c959 /src | |
parent | 7a5d72b2c59a157305c139b54cdb09c34d99e727 (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.cpp | 8 | ||||
-rw-r--r-- | src/cloudmessagingembeddedkaltiot/qcloudmessagingembeddedkaltiotclient_p.h | 1 |
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 |