From ef55679309d6199efa3191070c0a2d0f86175b34 Mon Sep 17 00:00:00 2001 From: Seungyoun Ju Date: Mon, 6 Aug 2018 20:31:35 +0900 Subject: [PATCH] device : Handle "Does Not Exist" error in get_ida [Problem] Even though LE RPA device is not paired, operation failed error code (BLUETOOTH_ERROR_INTERNAL) is reported. [Cause & Measure] Check error->message and report BLUETOOTH_ERROR_NOT_PAIRED when LE RPA device is not bonded [Checking Method] N/A Change-Id: I726c389c8f2cc0d9458a803ac4bb3463a9e25b60 --- bt-service/bt-service-device.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/bt-service/bt-service-device.c b/bt-service/bt-service-device.c index a97e297..21cf691 100644 --- a/bt-service/bt-service-device.c +++ b/bt-service/bt-service-device.c @@ -3457,22 +3457,23 @@ int _bt_get_device_ida(bluetooth_device_address_t *device_address, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); if (result == NULL) { BT_ERR("Failed to get device ID address"); + + ret = BLUETOOTH_ERROR_INTERNAL; if (error != NULL) { + g_dbus_error_strip_remote_error(error); BT_ERR("Error occured in Proxy call [%s]", error->message); + if (g_strcmp0(error->message, "Does Not Exist") == 0) + ret = BLUETOOTH_ERROR_NOT_PAIRED; g_error_free(error); } g_object_unref(device_proxy); - return BLUETOOTH_ERROR_INTERNAL; + return ret; } g_variant_get(result , "(&s)", &idaddress); - if (idaddress == NULL) { - BT_ERR("No paired device"); - ret = BLUETOOTH_ERROR_NOT_PAIRED; - } else { - DBG_SECURE("ID Address : %s", idaddress); - _bt_convert_addr_string_to_type(id_address->addr, idaddress); - } + + DBG_SECURE("ID Address : %s", idaddress); + _bt_convert_addr_string_to_type(id_address->addr, idaddress); g_variant_unref(result); g_object_unref(device_proxy); -- 2.7.4