summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-09 20:39:09 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2016-03-11 11:38:06 +0200
commit30889f605b7da1f3a3a94ee7f0676d1e914a0b8b (patch)
tree93eeedc1c3578c3dd7118a3caea5587636f7d767
parent519776b96460d850a01582ee5884b8fa0752bc00 (diff)
downloadbluez-30889f605b7da1f3a3a94ee7f0676d1e914a0b8b.tar.gz
service: Add 'reconnecting' state
-rw-r--r--plugins/service.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/service.c b/plugins/service.c
index 243df4682..1980bbfe2 100644
--- a/plugins/service.c
+++ b/plugins/service.c
@@ -133,18 +133,22 @@ static DBusMessage *service_connect(DBusConnection *conn, DBusMessage *msg,
static const char *data_get_state(struct service_data *data)
{
+ struct btd_service *service = data->service;
int err;
- data->state = btd_service_get_state(data->service);
+ data->state = btd_service_get_state(service);
switch (data->state) {
case BTD_SERVICE_STATE_UNAVAILABLE:
return "unavailable";
case BTD_SERVICE_STATE_DISCONNECTED:
+ if (btd_service_is_reconnecting(service))
+ return "reconnecting";
err = btd_service_get_error(data->service);
return err < 0 ? "error" : "disconnected";
case BTD_SERVICE_STATE_CONNECTING:
- return "connecting";
+ return btd_service_is_reconnecting(service) ? "reconnecting" :
+ "connecting";
case BTD_SERVICE_STATE_CONNECTED:
return "connected";
case BTD_SERVICE_STATE_DISCONNECTING: