From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Instead of using BTD_SERVICE_STATE_CONNECTING use btd_service_is_initiator to determine if the service initiated the connection and then proceed to connect other service immediately. Fixes: https://github.com/bluez/bluez/issues/205 --- plugins/policy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/policy.c b/plugins/policy.c index bf93df096..051db82e1 100644 --- a/plugins/policy.c +++ b/plugins/policy.c @@ -279,7 +279,7 @@ static void sink_cb(struct btd_service *service, btd_service_state_t old_state, /* Check if service initiate the connection then proceed * immediatelly otherwise set timer */ - if (old_state == BTD_SERVICE_STATE_CONNECTING) + if (btd_service_is_initiator(service)) policy_connect(data, controller); else if (btd_service_get_state(controller) != BTD_SERVICE_STATE_CONNECTED) @@ -315,7 +315,7 @@ static void hs_cb(struct btd_service *service, btd_service_state_t old_state, /* Check if service initiate the connection then proceed * immediately otherwise set timer */ - if (old_state == BTD_SERVICE_STATE_CONNECTING) + if (btd_service_is_initiator(service)) policy_connect(data, sink); else if (btd_service_get_state(sink) != BTD_SERVICE_STATE_CONNECTED) @@ -430,7 +430,7 @@ static void source_cb(struct btd_service *service, /* Check if service initiate the connection then proceed * immediatelly otherwise set timer */ - if (old_state == BTD_SERVICE_STATE_CONNECTING) + if (btd_service_is_initiator(service)) policy_connect(data, target); else if (btd_service_get_state(target) != BTD_SERVICE_STATE_CONNECTED) -- 2.31.1