Return detailed error_code in _uam_add_ibeacon_adv_data() 94/215694/1 accepted/tizen/unified/20191017.035503 submit/tizen/20191017.002636
authorLokesh <l.kasana@samsung.com>
Mon, 14 Oct 2019 03:51:55 +0000 (09:21 +0530)
committersaerome.kim <saerome.kim@samsung.com>
Mon, 14 Oct 2019 08:47:47 +0000 (17:47 +0900)
Change-Id: I17f3d23aa5c7fdd8c5332858ae4190a439abc6f5
Signed-off-by: Lokesh <l.kasana@samsung.com>
packaging/ua-manager.spec
ua-daemon/src/pm/ua-plugin-manager.c
ua-daemon/src/ua-manager-adv-db.c
ua-daemon/src/ua-manager-core.c

index 7c0ea16..d11a711 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ua-manager
 Summary:    User awareness manager
-Version:    0.11.5
+Version:    0.11.6
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 482ccf3..5120a66 100644 (file)
@@ -742,8 +742,10 @@ int _uam_pm_add_ibeacon_adv(unsigned int adv_len, const char *iadv)
        id = UAS_PLUGIN_ID_BLE;
        uam_sensor_plugin_info_t *plugin = plugins[id];
 
-       if (!plugin || !plugin->api || !plugin->api->add_ibeacon_adv)
+       if (!plugin || !plugin->api || !plugin->api->add_ibeacon_adv) {
+               ret = UAM_ERROR_NOT_SUPPORTED;
                goto done;
+       }
 
        status = plugin->api->add_ibeacon_adv(adv_len, iadv);
        if (UAS_STATUS_SUCCESS != status && UAS_STATUS_ALREADY_DONE != status) {
index 53bf1ee..4b753db 100644 (file)
@@ -205,7 +205,10 @@ int _uam_db_insert_adv_info(unsigned int adv_len, const char *iadv)
        if (sql_ret != SQLITE_DONE) {
                UAM_ERR("Failed to insert ibeacon adv info [%d:%s]",
                        sql_ret, sqlite3_errmsg(database_handle));
-               error_code = UAM_ERROR_DB_FAILED;
+
+               error_code = sqlite3_extended_errcode(database_handle) ==
+                               SQLITE_CONSTRAINT_UNIQUE ?
+                               UAM_ERROR_ALREADY_DONE : UAM_ERROR_DB_FAILED;
                goto handle_error;
        }
 
index 27ef4e5..2d7129d 100644 (file)
@@ -3676,9 +3676,10 @@ int _uam_core_add_ibeacon_adv(unsigned int adv_len, const char *iadv)
        UAM_INFO("adv_len = %u, iadv = 0x%0x:0x%0x:0x%0x", adv_len,
                iadv[0], iadv[1], iadv[2]);
 
-       if (UAM_ERROR_NONE != _uam_db_insert_adv_info(adv_len, iadv)) {
+       ret = _uam_db_insert_adv_info(adv_len, iadv);
+       if (UAM_ERROR_NONE != ret) {
                UAM_ERR("_uam_db_insert_adv_info failed");
-               return UAM_ERROR_DB_FAILED;
+               return ret;
        }
 
        ret = _uam_pm_add_ibeacon_adv(adv_len, iadv);