From: Wootak Jung Date: Tue, 16 Jan 2024 03:53:35 +0000 (+0900) Subject: Fix issue of not reconnecting when disconnected due to timeout X-Git-Tag: accepted/tizen/7.0/unified/20240124.062503~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47e37a4f7e932d0fbbb3fe94d2184e87d0c96f44;p=platform%2Fupstream%2Fbluez.git Fix issue of not reconnecting when disconnected due to timeout Change-Id: I0f263370df9c22d8fdc98ceb33bc1e364b828ba8 Signed-off-by: Wootak Jung --- diff --git a/plugins/policy.c b/plugins/policy.c index 46bbb85f..065ce4f2 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;