From 2e2edc36a91d6a8f2c65d793273df28a166d6bed Mon Sep 17 00:00:00 2001 From: Miroslav Koskar Date: Fri, 10 Jun 2016 15:21:39 +0200 Subject: [PATCH] core/service: Allow disconnected -> connected state change By ignoring case where service->state == BTD_SERVICE_STATE_DISCONNECTED in btd_service_connecting_complete(), state_callbacks don't get executed. Such case occurs when e.g., phone using a2dp-source profile connects to the bluez. Because no state_callbacks are executed (including one added by policy plugin) no reconnection is attempted after connection timeout, although if situation is reversed (bluez connects to the phone) reconnection works. --- src/service.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/service.c b/src/service.c index f7912f57a..0da14ab36 100644 --- a/src/service.c +++ b/src/service.c @@ -353,7 +353,8 @@ bool btd_service_remove_state_cb(unsigned int id) void btd_service_connecting_complete(struct btd_service *service, int err) { - if (service->state != BTD_SERVICE_STATE_CONNECTING) + if (service->state != BTD_SERVICE_STATE_DISCONNECTED && + service->state != BTD_SERVICE_STATE_CONNECTING) return; if (err == 0) -- 2.47.3