Fix device payload update query accepted/tizen/unified/20200101.120602 submit/tizen/20191230.073018
authorAbhay agarwal <ay.agarwal@samsung.com>
Fri, 27 Dec 2019 03:24:19 +0000 (08:54 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Mon, 30 Dec 2019 07:29:56 +0000 (16:29 +0900)
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
ua-daemon/src/ua-manager-core.c
ua-daemon/src/ua-manager-payload-db.c

index 8b11fea..96421a4 100644 (file)
@@ -149,22 +149,6 @@ static gint __compare_payload(gconstpointer data, gconstpointer user_data)
        return -1;
 }
 
-#if 0
-static gint __compare_db_payload(gconstpointer data, gconstpointer user_data)
-{
-       const uam_db_payload_info_t *db_payload = data;
-       const uam_db_payload_info_t *payload = user_data;
-
-       retv_if(NULL == db_payload, -1);
-       retv_if(NULL == payload, -1);
-
-       if ((db_payload->primary_key == payload->primary_key) &&
-               (0 == g_strcmp0(db_payload->device_uid, payload->device_uid)))
-               return 0;
-       return -1;
-}
-#endif
-
 static void __free_address_info(gpointer data)
 {
        FUNC_ENTRY;
@@ -3151,6 +3135,12 @@ int _uam_core_handle_presence_detected(unsigned int sensor,
        tech->presence_state = UAM_PRESENCE_STATE_PRESENT;
        tech->last_seen = dev_info->last_seen;
 
+       /** Update payload info in list with user data */
+       l = g_slist_find_custom(payloads, payload, __compare_payload);
+       if (l) {
+               __uam_copy_uam_payload_info(l->data, payload);
+       }
+
        retv_if(UAM_ERROR_NONE != __uam_db_begin_transaction(), UAM_ERROR_INVALID_PARAMETER);
 
        /* Check if IP/MAC address was updated then update in DB */
index b13a214..466c7fa 100644 (file)
@@ -42,8 +42,9 @@
 #define DELETE_ALL_PAYLOADS "delete from payloads"
 
 #define UPDATE_PAYLOAD "UPDATE payloads " \
-       "SET primary_key = ?, secondary_key = ?, device_uid_len = ?, " \
-       "device_uid = ?, device_icon = ?, user_data = ? WHERE device_number = ?"
+       "SET device_icon = ?, user_data = ? WHERE primary_key = ? AND " \
+       "secondary_key = ? AND device_uid_len = ? AND " \
+       "device_uid = ? AND device_number = ?"
 
 /* DELETE statements */
 static sqlite3_stmt *delete_all_payloads;
@@ -480,19 +481,19 @@ int _uam_db_update_payload_info(
        if (UAM_ERROR_NONE != error_code)
                goto handle_error;
 
-       DB_ACTION(sqlite3_bind_text(stmt, 1, &(payload->primary_key), 1, SQLITE_TRANSIENT),
+       DB_ACTION(sqlite3_bind_text(stmt, 1, &(payload->device_icon), 1, SQLITE_TRANSIENT),
                error_code, handle_error);
-       DB_ACTION(sqlite3_bind_text(stmt, 2, &(payload->secondary_key), 1, SQLITE_TRANSIENT),
+       user_data_len = UAM_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - payload->device_uid_len;
+       DB_ACTION(sqlite3_bind_text(stmt, 2, payload->user_data, user_data_len, SQLITE_TRANSIENT),
                error_code, handle_error);
-       DB_ACTION(sqlite3_bind_int(stmt, 3, payload->device_uid_len),
+
+       DB_ACTION(sqlite3_bind_text(stmt, 3, &(payload->primary_key), 1, SQLITE_TRANSIENT),
                error_code, handle_error);
-       DB_ACTION(sqlite3_bind_text(stmt, 4, payload->device_uid, payload->device_uid_len, SQLITE_TRANSIENT),
+       DB_ACTION(sqlite3_bind_text(stmt, 4, &(payload->secondary_key), 1, SQLITE_TRANSIENT),
                error_code, handle_error);
-       DB_ACTION(sqlite3_bind_text(stmt, 5, &(payload->device_icon), 1, SQLITE_TRANSIENT),
+       DB_ACTION(sqlite3_bind_int(stmt, 5, payload->device_uid_len),
                error_code, handle_error);
-
-       user_data_len = UAM_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - payload->device_uid_len;
-       DB_ACTION(sqlite3_bind_text(stmt, 6, payload->user_data, user_data_len, SQLITE_TRANSIENT),
+       DB_ACTION(sqlite3_bind_text(stmt, 6, payload->device_uid, payload->device_uid_len, SQLITE_TRANSIENT),
                error_code, handle_error);
        DB_ACTION(sqlite3_bind_int(stmt, 7, device_number),
                error_code, handle_error);