From 3db281a4966ed139febc8b52a1d1f738f126a752 Mon Sep 17 00:00:00 2001 From: Wootak Jung Date: Tue, 16 Jan 2024 12:53:35 +0900 Subject: [PATCH] Fix issue of not reconnecting when disconnected due to timeout Change-Id: I0f263370df9c22d8fdc98ceb33bc1e364b828ba8 Signed-off-by: Wootak Jung --- plugins/policy.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/policy.c b/plugins/policy.c index b75a0ba..3539a25 100755 --- a/plugins/policy.c +++ b/plugins/policy.c @@ -802,8 +802,15 @@ static void disconnect_cb(struct btd_device *dev, uint8_t reason) DBG("reason %u", reason); /* Only attempt reconnect for the following reasons */ +#ifdef TIZEN_FEATURE_BLUEZ_MODIFY + /* In the timeout case, the error is converted to HCI_ERROR_CONNECTION_TIMEOUT(0x08) + * by mgmt_to_hci_reason(). But, in the suspend case, no conversion is performed */ + if (reason != 0x08 && + reason != MGMT_DEV_DISCONN_LOCAL_HOST_SUSPEND) +#else if (reason != MGMT_DEV_DISCONN_TIMEOUT && reason != MGMT_DEV_DISCONN_LOCAL_HOST_SUSPEND) +#endif return; reconnect = reconnect_find(dev); @@ -830,9 +837,15 @@ static void disconnect_cb(struct btd_device *dev, uint8_t reason) reconnect_set_timer(reconnect, resume_delay); } break; +#ifdef TIZEN_FEATURE_BLUEZ_MODIFY + case 0x08: /* HCI_ERROR_CONNECTION_TIMEOUT */ + reconnect_set_timer(reconnect, -1); + break; +#else case MGMT_DEV_DISCONN_TIMEOUT: reconnect_set_timer(reconnect, -1); break; +#endif default: DBG("Developer error. Reason = %d", reason); break; -- 2.7.4