summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-09 20:39:09 +0300
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-08-11 12:29:31 +0100
commit107555d92daaa68323988b91a68c79b22af7f6cb (patch)
treeee84114db90865664f32e286cf78ca382e8856d1
parent656ccb7acc27db5f7fb4b5c4b69de60a9fd934af (diff)
downloadbluez-107555d92daaa68323988b91a68c79b22af7f6cb.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: