From 29f2be865c6e58698bcfc878f3e1796ad3f9e47c Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Fri, 17 Jul 2020 17:34:38 -0700 Subject: [PATCH] adapter: Don't remove temporary devices on disconnect This makes the disconnect logic just update last seen field of the device so in case it is temporary it would trigger its timer and be removed after the timeout which is consistent with the discovery session givin a grace time for application to react to such events. Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- src/adapter.c | 8 ++------ src/device.c | 2 ++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index bc39e6f4..d8e6c998 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -12089,13 +12089,11 @@ static void adapter_remove_connection(struct btd_adapter *adapter, device_is_bonded(device, bdaddr_type)); if ((device_is_temporary(device) && !device_is_retrying(device)) || (!device_is_bonded(device, bdaddr_type))) { -#else - if (device_is_temporary(device) && !device_is_retrying(device)) { -#endif + const char *path = device_get_path(device); DBG("Removing temporary device %s", path); -#ifdef TIZEN_FEATURE_BLUEZ_MODIFY + /* device_is_paired is added incase of tempoary bonded * oop file transfer in that device is not bonded it's paired. */ @@ -12106,8 +12104,6 @@ static void adapter_remove_connection(struct btd_adapter *adapter, } btd_adapter_unpair_device(adapter, device); -#else - btd_adapter_remove_device(adapter, device); #endif } } diff --git a/src/device.c b/src/device.c index 9f58ff0e..d3148238 100644 --- a/src/device.c +++ b/src/device.c @@ -4801,6 +4801,8 @@ void device_remove_connection(struct btd_device *device, uint8_t bdaddr_type) if (device->bredr_state.connected || device->le_state.connected) return; + device_update_last_seen(device, bdaddr_type); + g_dbus_emit_property_changed(dbus_conn, device->path, DEVICE_INTERFACE, "Connected"); #else -- 2.34.1