Not try to unbond in case the device is not paired 50/230750/1
authorDeokhyun Kim <dukan.kim@samsung.com>
Fri, 10 Apr 2020 08:00:57 +0000 (17:00 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Tue, 14 Apr 2020 04:30:11 +0000 (13:30 +0900)
Change-Id: Ifd81edf481569e000708c25332d52141d2f826c0
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-oal/bluez_hal/src/bt-hal-device-dbus-handler.c

index bff47c4..dd131bc 100644 (file)
@@ -164,6 +164,8 @@ int _bt_hal_device_remove_bond(const bt_bdaddr_t *bd_addr)
        GError *error = NULL;
        GVariant *ret = NULL;
        char address[BT_HAL_ADDRESS_STRING_SIZE] = { 0 };
+       GVariant *value = NULL;
+       gboolean is_paired = FALSE;
 
        DBG("Add[0x%x] [0x%x][0x%x][0x%x][0x%x][0x%x]",
                        bd_addr->address[0], bd_addr->address[1],
@@ -218,11 +220,21 @@ int _bt_hal_device_remove_bond(const bt_bdaddr_t *bd_addr)
                                g_object_unref(device_proxy);
                                return BT_STATUS_FAIL;
                        }
+
+                       g_variant_get(ret, "(v)", &value);
+                       is_paired = g_variant_get_boolean(value);
+                       DBG("is_paired = %d", is_paired);
+                       g_variant_unref(value);
                        g_variant_unref(ret);
                }
                g_object_unref(device_proxy);
        }
 
+       if (is_paired == FALSE) {
+               ERR("No paired device");
+               return BT_STATUS_FAIL;
+       }
+
        g_dbus_proxy_call(adapter_proxy, "UnpairDevice",
                        g_variant_new("(o)", device_path),
                        G_DBUS_CALL_FLAGS_NONE,