2 * Copyright (c) 2018 Samsung Electronics Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License")
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
24 #include "ua-manager-common.h"
25 #include "ua-manager-database.h"
27 #define SELECT_SERVICE "SELECT S.service_number, S.service_name, S.cycle " \
28 "FROM device_services as D JOIN services as S USING(service_number) " \
29 "where D.device_number = ?"
31 #define SELECT_DEVICE_SERVICES_COUNT "SELECT count(*) " \
32 "FROM device_services where device_number = ?"
34 #define SELECT_DEVICE_SERVICES \
35 "SELECT D.device_id, D.tech_type, S.service_name, X.discriminant, X.last_seen, " \
36 "P.primary_key, P.secondary_key, P.device_uid, P.device_icon " \
37 "FROM device_services as X JOIN services as S USING(service_number) JOIN devices as D " \
38 "USING(device_number) JOIN payloads as P USING(payload_number)"
40 #define INSERT_DEVICE_SERVICE "insert into device_services " \
41 "(device_number, service_number, discriminant, last_seen) values (?, ?, ?, ?)"
43 #define DELETE_ALL_DEVICE_SERVICES "delete from device_services "
45 #define DELETE_DEVICE_SERVICE "delete from device_services " \
46 "WHERE device_number = ? and service_number = ?"
48 #define DELETE_DEVICE "delete from device_services " \
49 "WHERE device_number = ?"
51 #define DELETE_SERVICE "delete from device_services " \
52 "WHERE service_number = ?"
54 #define UPDATE_DEVICE_SERVICE_DISCRIMINANT "UPDATE device_services " \
55 "SET discriminant = ? WHERE device_number = ? AND service_number = ?"
57 #define UPDATE_DEVICE_SERVICE_LAST_SEEN "UPDATE device_services " \
58 "SET last_seen = ? WHERE device_number = ? AND service_number = ?"
60 #define UPDATE_DEVICE_SERVICE_PAYLOAD "UPDATE device_services " \
61 "SET payload_number = ? WHERE device_number = ? AND service_number = ?"
63 /* DELETE statements */
64 static sqlite3_stmt *delete_all_device_services;
65 static sqlite3_stmt *delete_service;
66 static sqlite3_stmt *delete_device_service;
67 static sqlite3_stmt *delete_device;
69 /* SELECT statements */
70 static sqlite3_stmt *select_service;
71 static sqlite3_stmt *select_device_services_count;
72 static sqlite3_stmt *select_device_services;
74 /* INSERT statements */
75 static sqlite3_stmt *insert_device_service;
77 /* UPDATE statements */
78 static sqlite3_stmt *update_device_service_discriminant;
79 static sqlite3_stmt *update_device_service_last_seen;
80 static sqlite3_stmt *update_device_service_payload;
82 extern sqlite3 *database_handle;
84 static void __uam_device_service_finalize_delete(void)
88 FINALIZE(delete_all_device_services);
89 FINALIZE(delete_service);
90 FINALIZE(delete_device_service);
91 FINALIZE(delete_device);
96 static void __uam_device_service_finalize_select(void)
100 FINALIZE(select_service);
101 FINALIZE(select_device_services_count);
102 FINALIZE(select_device_services);
107 static void __uam_device_service_finalize_insert(void)
111 FINALIZE(insert_device_service);
116 static void __uam_device_service_finalize_update(void)
120 FINALIZE(update_device_service_discriminant);
121 FINALIZE(update_device_service_last_seen);
122 FINALIZE(update_device_service_payload);
127 static int __uam_device_service_prepare_delete(sqlite3 *db)
131 static int initialized;
138 PREPARE_QUERY(rc, db, delete_all_device_services,
139 DELETE_ALL_DEVICE_SERVICES, __uam_device_service_finalize_delete);
140 PREPARE_QUERY(rc, db, delete_service,
141 DELETE_SERVICE, __uam_device_service_finalize_delete);
142 PREPARE_QUERY(rc, db, delete_device_service,
143 DELETE_DEVICE_SERVICE, __uam_device_service_finalize_delete);
144 PREPARE_QUERY(rc, db, delete_device,
145 DELETE_DEVICE, __uam_device_service_finalize_delete);
152 static int __uam_device_service_prepare_select(sqlite3 *db)
156 static int initialized;
163 PREPARE_QUERY(rc, db, select_service,
164 SELECT_SERVICE, __uam_device_service_finalize_select);
165 PREPARE_QUERY(rc, db, select_device_services_count,
166 SELECT_DEVICE_SERVICES_COUNT, __uam_device_service_finalize_select);
167 PREPARE_QUERY(rc, db, select_device_services,
168 SELECT_DEVICE_SERVICES, __uam_device_service_finalize_select);
175 static int __uam_device_service_prepare_update(sqlite3 *db)
179 static int initialized;
186 PREPARE_QUERY(rc, db, update_device_service_discriminant,
187 UPDATE_DEVICE_SERVICE_DISCRIMINANT, __uam_device_service_finalize_update);
188 PREPARE_QUERY(rc, db, update_device_service_last_seen,
189 UPDATE_DEVICE_SERVICE_LAST_SEEN, __uam_device_service_finalize_update);
190 PREPARE_QUERY(rc, db, update_device_service_payload,
191 UPDATE_DEVICE_SERVICE_PAYLOAD, __uam_device_service_finalize_update);
198 static int __uam_device_service_prepare_insert(sqlite3 *db)
202 static int initialized;
209 PREPARE_QUERY(rc, db, insert_device_service,
210 INSERT_DEVICE_SERVICE, __uam_device_service_finalize_insert);
217 static int __uam_device_service_table_deviceservicesinfo_prepare(
222 int error_code = UAM_ERROR_NONE;
226 return UAM_ERROR_DB_FAILED;
229 DB_ACTION(__uam_device_service_prepare_delete(db), error_code, handle_error);
230 DB_ACTION(__uam_device_service_prepare_select(db), error_code, handle_error);
231 DB_ACTION(__uam_device_service_prepare_update(db), error_code, handle_error);
232 DB_ACTION(__uam_device_service_prepare_insert(db), error_code, handle_error);
239 static void __uam_device_service_table_devicesinfo_finalize(void)
242 __uam_device_service_finalize_delete();
243 __uam_device_service_finalize_select();
244 __uam_device_service_finalize_insert();
245 __uam_device_service_finalize_update();
249 int _uam_device_service_db_deinitialize(void)
253 retv_if(NULL == database_handle, UAM_ERROR_NONE);
255 __uam_device_service_table_devicesinfo_finalize();
256 sqlite3_close(database_handle);
259 return UAM_ERROR_NONE;
262 int _uam_device_service_db_initialize(void)
266 EXEC(UAM_ERROR_NONE, __uam_device_service_table_deviceservicesinfo_prepare(
267 database_handle), handle_error);
270 return UAM_ERROR_NONE;
273 _uam_device_service_db_deinitialize();
275 return UAM_ERROR_DB_FAILED;
278 int _uam_db_insert_service(int device_number, int service_number,
279 gboolean discriminant, unsigned long long last_seen)
282 int error_code = UAM_ERROR_NONE;
283 sqlite3_stmt *stmt = insert_device_service;
284 int sql_ret = SQLITE_OK;
286 UAM_INFO("%d-%d", device_number, service_number);
288 DB_ACTION(sqlite3_bind_int(stmt, 1, device_number), error_code, handle_error);
289 DB_ACTION(sqlite3_bind_int(stmt, 2, service_number), error_code, handle_error);
290 DB_ACTION(sqlite3_bind_int(stmt, 3, discriminant), error_code, handle_error);
291 DB_ACTION(sqlite3_bind_int64(stmt, 4, last_seen), error_code, handle_error);
293 sql_ret = sqlite3_step(stmt);
294 if (sql_ret != SQLITE_DONE) {
295 UAM_ERR("Failed to insert device-service info [%d:%s]",
296 sql_ret, sqlite3_errmsg(database_handle));
297 error_code = UAM_ERROR_DB_FAILED;
301 UAM_DBG("Device-service info inserted [%d] [%d] [%d] [%llu]", device_number,
302 service_number, discriminant, last_seen);
310 int _uam_db_insert_device_service_info(const char *device_id, int tech_type,
311 const char *address, const char *service_name, int cycle, gboolean discriminant,
312 unsigned long long last_seen)
315 int ret = UAM_ERROR_NONE;
316 db_service_info_t info;
317 int service_number = 0;
319 UAM_INFO("%s-%d-%s-%s-%d", device_id, tech_type, address, service_name, cycle);
321 int device_number = 0;
322 ret = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
323 if (UAM_ERROR_NONE != ret)
326 ret = _uam_db_get_service_info(service_name, &info);
327 if (UAM_ERROR_NONE != ret)
330 service_number = info.service_number;
332 UAM_INFO("%d-%d", device_number, service_number);
334 ret = _uam_db_insert_service(device_number, service_number, discriminant, last_seen);
335 if (UAM_ERROR_NONE != ret)
338 UAM_DBG("Device-service info inserted [%d] [%d] [%d] [%llu]", device_number,
339 service_number, discriminant, last_seen);
346 static int __uam_db_update_discriminant(int device_number,
347 int service_number, gboolean discriminant)
350 int error_code = UAM_ERROR_NONE;
351 sqlite3_stmt *stmt = update_device_service_discriminant;
352 int sql_ret = SQLITE_OK;
354 UAM_INFO("%d-%d", device_number, service_number);
356 DB_ACTION(sqlite3_bind_int(stmt, 1, discriminant), error_code, handle_error);
357 DB_ACTION(sqlite3_bind_int(stmt, 2, device_number),
358 error_code, handle_error);
359 DB_ACTION(sqlite3_bind_int(stmt, 3, service_number),
360 error_code, handle_error);
362 sql_ret = sqlite3_step(stmt);
363 if (sql_ret != SQLITE_DONE) {
364 UAM_ERR("Failed to update device-service [%d:%s]",
365 sql_ret, sqlite3_errmsg(database_handle));
366 error_code = UAM_ERROR_DB_FAILED;
370 UAM_DBG("Device-service info updated [%d] [%d] [%d] ",
371 device_number, service_number, discriminant);
379 static int __uam_db_update_last_seen(int device_number,
380 int service_number, unsigned long long last_seen)
383 int error_code = UAM_ERROR_NONE;
384 sqlite3_stmt *stmt = update_device_service_last_seen;
385 int sql_ret = SQLITE_OK;
387 UAM_INFO("%d-%d", device_number, service_number);
389 DB_ACTION(sqlite3_bind_int(stmt, 1, last_seen), error_code, handle_error);
390 DB_ACTION(sqlite3_bind_int(stmt, 2, device_number),
391 error_code, handle_error);
392 DB_ACTION(sqlite3_bind_int(stmt, 3, service_number),
393 error_code, handle_error);
395 sql_ret = sqlite3_step(stmt);
396 if (sql_ret != SQLITE_DONE) {
397 UAM_ERR("Failed to update device-service [%d:%s]",
398 sql_ret, sqlite3_errmsg(database_handle));
399 error_code = UAM_ERROR_DB_FAILED;
403 UAM_DBG("Device-service info updated [%d] [%d] [%llu]",
404 device_number, service_number, last_seen);
412 int _uam_db_update_device_service_discriminant(const char *device_id,
413 int tech_type, const char *address, const char *service_name,
414 gboolean discriminant)
417 int ret = UAM_ERROR_NONE;
418 db_service_info_t info;
419 int service_number = 0;
421 UAM_INFO("%s-%d-%s-%s-%d", device_id, tech_type, address, service_name, discriminant);
423 int device_number = 0;
424 ret = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
425 if (UAM_ERROR_NONE != ret)
428 ret = _uam_db_get_service_info(service_name, &info);
429 if (UAM_ERROR_NONE == ret)
430 service_number = info.service_number;
434 ret = __uam_db_update_discriminant(device_number, service_number, discriminant);
435 if (UAM_ERROR_NONE != ret)
438 UAM_DBG("Device-service info updated [%d] [%d]", device_number, service_number);
445 int _uam_db_update_device_service_last_seen(const char *device_id,
446 int tech_type, const char *address, const char *service_name,
447 unsigned long long last_seen)
450 int ret = UAM_ERROR_NONE;
451 db_service_info_t info;
452 int service_number = 0;
454 UAM_INFO("%s-%d-%s-%s-%llu", device_id, tech_type, address, service_name,
457 int device_number = 0;
458 ret = _uam_db_get_device_number(device_id, tech_type, address,
460 if (UAM_ERROR_NONE != ret)
463 ret = _uam_db_get_service_info(service_name, &info);
464 if (UAM_ERROR_NONE == ret)
465 service_number = info.service_number;
469 ret = __uam_db_update_last_seen(device_number, service_number, last_seen);
470 if (UAM_ERROR_NONE != ret)
473 UAM_DBG("Device-service last_seen updated [%d] [%d]", device_number,
482 int _uam_device_service_db_clear(void)
484 int error_code = UAM_ERROR_NONE;
485 sqlite3_stmt *stmt = delete_all_device_services;
486 int sql_ret = SQLITE_OK;
488 sql_ret = sqlite3_step(stmt);
489 if (sql_ret != SQLITE_DONE) {
490 UAM_ERR("Failed to delete device data [%d:%s]",
491 sql_ret, sqlite3_errmsg(database_handle));
492 error_code = UAM_ERROR_DB_FAILED;
496 UAM_DBG("User data deleted ");
504 int _uam_db_delete_service_number(int service_number)
507 int error_code = UAM_ERROR_NONE;
508 sqlite3_stmt *stmt = delete_service;
509 int sql_ret = SQLITE_OK;
511 UAM_INFO("Service Number: %d", service_number);
513 DB_ACTION(sqlite3_bind_int(stmt, 1, service_number), error_code, handle_error);
515 sql_ret = sqlite3_step(stmt);
516 if (sql_ret != SQLITE_DONE) {
517 UAM_ERR("Failed to delete device-service info [%d:%s]",
518 sql_ret, sqlite3_errmsg(database_handle));
519 error_code = UAM_ERROR_DB_FAILED;
521 UAM_DBG("Device-service info deleted");
529 int _uam_db_delete_device_service_number(int device_number,
533 int error_code = UAM_ERROR_NONE;
534 sqlite3_stmt *stmt = delete_device_service;
535 int sql_ret = SQLITE_OK;
537 UAM_INFO("Device Number: %d Service Number: %d", device_number, service_number);
539 DB_ACTION(sqlite3_bind_int(stmt, 1, device_number), error_code, handle_error);
540 DB_ACTION(sqlite3_bind_int(stmt, 2, service_number), error_code, handle_error);
542 sql_ret = sqlite3_step(stmt);
543 if (sql_ret != SQLITE_DONE) {
544 UAM_ERR("Failed to delete device-service info [%d:%s]",
545 sql_ret, sqlite3_errmsg(database_handle));
546 error_code = UAM_ERROR_DB_FAILED;
548 UAM_DBG("Device-service info deleted");
556 int _uam_db_delete_device_number(int device_number)
559 int error_code = UAM_ERROR_NONE;
560 sqlite3_stmt *stmt = delete_device;
561 int sql_ret = SQLITE_OK;
563 UAM_INFO("Device Number: %d", device_number);
565 DB_ACTION(sqlite3_bind_int(stmt, 1, device_number), error_code, handle_error);
567 sql_ret = sqlite3_step(stmt);
568 if (sql_ret != SQLITE_DONE) {
569 UAM_ERR("Failed to delete device info [%d:%s]",
570 sql_ret, sqlite3_errmsg(database_handle));
571 error_code = UAM_ERROR_DB_FAILED;
573 UAM_DBG("Device info deleted");
581 int _uam_db_delete_device_service(const char *service_name)
584 db_service_info_t info;
585 int ret = UAM_ERROR_NONE;
586 int service_number = 0;
587 int error_code = UAM_ERROR_NONE;
588 UAM_INFO("%s", service_name);
590 ret = _uam_db_get_service_info(service_name, &info);
591 if (UAM_ERROR_NONE != ret)
593 service_number = info.service_number;
595 UAM_INFO("%d", service_number);
597 ret = _uam_db_delete_service_number(service_number);
598 if (UAM_ERROR_NONE != ret)
601 UAM_DBG("Service info deleted [%d]", service_number);
608 int _uam_db_delete_device_service_info(const char *device_id, int tech_type,
609 const char *address, const char *service_name)
612 db_service_info_t info;
613 int ret = UAM_ERROR_NONE;
614 int service_number = 0;
615 int device_number = 0;
616 int error_code = UAM_ERROR_NONE;
618 UAM_INFO("%s-%d-%s-%s", device_id, tech_type, address, service_name);
620 ret = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
621 if (UAM_ERROR_NONE != ret)
624 ret = _uam_db_get_service_info(service_name, &info);
625 if (UAM_ERROR_NONE != ret)
627 service_number = info.service_number;
629 UAM_INFO("%d-%d", device_number, service_number);
631 ret = _uam_db_delete_device_service_number(device_number, service_number);
632 if (UAM_ERROR_NONE != ret)
635 UAM_DBG("Device-service info deleted [%d] [%d]", device_number, service_number);
642 int _uam_db_delete_device_service_mapping(const char *device_id,
643 int tech_type, const char *address)
646 int ret = UAM_ERROR_NONE;
647 int device_number = 0;
648 int error_code = UAM_ERROR_NONE;
650 UAM_INFO("%s-%d-%s", device_id, tech_type, address);
652 ret = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
653 if (UAM_ERROR_NONE != ret)
656 UAM_INFO("%d", device_number);
658 ret = _uam_db_delete_device_number(device_number);
659 if (UAM_ERROR_NONE != ret)
662 UAM_DBG("Device info deleted [%d]", device_number);
669 GSList *_uam_db_get_service(int device_number)
672 sqlite3_stmt *stmt = select_service;
673 GSList *service_list = NULL;
674 db_service_info_t *info = NULL;
675 int sql_ret = SQLITE_OK;
677 if (sqlite3_bind_int(stmt, 1, device_number) != SQLITE_OK)
681 sql_ret = sqlite3_step(stmt);
686 info = g_new0(db_service_info_t, 1);
687 info->service_number = sqlite3_column_int(stmt, 0);
688 g_strlcpy(info->service_name, (char *)sqlite3_column_text(stmt, 1),
689 UAM_SERVICE_MAX_STRING_LEN);
690 info->cycle = sqlite3_column_int(stmt, 2);
692 UAM_INFO("%d-%s-%d", info->service_number, info->service_name, info->cycle);
693 service_list = g_slist_append(service_list, info);
697 UAM_ERR("Failed to enumerate device info [%d:%s]",
698 sql_ret, sqlite3_errmsg(database_handle));
700 } while (sql_ret == SQLITE_ROW);
708 GSList *_uam_db_get_device_services(const char *device_id, int tech_type,
712 int ret = UAM_ERROR_NONE;
713 int device_number = 0;
714 UAM_INFO("%s-%d-%s", device_id, tech_type, address);
716 GSList *service_list = NULL;
717 ret = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
718 if (UAM_ERROR_NONE != ret)
721 service_list = _uam_db_get_service(device_number);
728 int _uam_db_get_device_services_count(const char *device_id, int tech_type,
729 const char *address, int *svc_count)
732 int error_code = UAM_ERROR_NONE;
733 sqlite3_stmt *stmt = select_device_services_count;
734 int device_number = 0;
735 int sql_ret = SQLITE_OK;
737 retv_if(NULL == device_id, UAM_ERROR_INVALID_PARAMETER);
738 retv_if(NULL == address, UAM_ERROR_INVALID_PARAMETER);
739 UAM_INFO("%s-%d-%s", device_id, tech_type, address);
741 error_code = _uam_db_get_device_number(device_id, tech_type, address, &device_number);
742 if (UAM_ERROR_NONE != error_code)
745 DB_ACTION(sqlite3_bind_int(stmt, 1, device_number),
746 error_code, handle_error);
749 sql_ret = sqlite3_step(stmt);
755 UAM_DBG("Device services count info found");
756 *svc_count = sqlite3_column_int(stmt, 0);
757 UAM_INFO("device services count %d", *svc_count);
761 UAM_ERR("Failed to enumerate device info [%d:%s]",
762 sql_ret, sqlite3_errmsg(database_handle));
764 } while (sql_ret == SQLITE_ROW);
772 GSList *_uam_db_get_service_devices_info()
775 sqlite3_stmt *stmt = select_device_services;
776 GSList *svc_dev_list = NULL;
777 db_svc_dev_info_t *info = NULL;
778 int sql_ret = SQLITE_OK;
782 sql_ret = sqlite3_step(stmt);
788 UAM_DBG("Device services info found");
789 info = g_new0(db_svc_dev_info_t, 1);
790 g_strlcpy(info->device_id, (char *)sqlite3_column_text(stmt, 0),
791 UAM_DEVICE_ID_MAX_STRING_LEN);
792 info->type = sqlite3_column_int(stmt, 1);
793 g_strlcpy(info->svc, (char *)sqlite3_column_text(stmt, 2),
794 UAM_SERVICE_MAX_STRING_LEN);
795 info->discriminant = sqlite3_column_int(stmt, 3);
796 info->last_seen = sqlite3_column_int64(stmt, 4);
797 buf = (char *)sqlite3_column_text(stmt, 5);
798 info->payload_info.primary_key = buf ? *buf : 13;
799 buf = (char *)sqlite3_column_text(stmt, 6);
800 info->payload_info.secondary_key = buf ? *buf : 1;
801 buf = (char *)sqlite3_column_text(stmt, 7);
803 memcpy(info->payload_info.device_uid, buf,
804 UAM_BLE_PAYLOAD_DEVICE_UID_LEN);
805 buf = (char *)sqlite3_column_text(stmt, 8);
806 info->payload_info.device_icon = buf ? *buf : 1;
808 UAM_INFO("device id:%s-%d-%s-%d-%llu " \
809 "primary key: %d secondary key: %d",
815 info->payload_info.primary_key,
816 info->payload_info.secondary_key);
818 svc_dev_list = g_slist_append(svc_dev_list, info);
822 UAM_ERR("Failed to enumerate device info [%d:%s]",
823 sql_ret, sqlite3_errmsg(database_handle));
825 } while (sql_ret == SQLITE_ROW);
832 static int __uam_db_update_dev_svc_payload(int device_number,
833 int service_number, int payload_number)
836 int error_code = UAM_ERROR_NONE;
837 sqlite3_stmt *stmt = update_device_service_payload;
838 int sql_ret = SQLITE_OK;
840 UAM_INFO("service: %d device: %d payload: %d",
841 device_number, service_number, payload_number);
843 DB_ACTION(sqlite3_bind_int(stmt, 1, payload_number), error_code, handle_error);
844 DB_ACTION(sqlite3_bind_int(stmt, 2, device_number), error_code, handle_error);
845 DB_ACTION(sqlite3_bind_int(stmt, 3, service_number), error_code, handle_error);
847 sql_ret = sqlite3_step(stmt);
848 if (sql_ret != SQLITE_DONE) {
849 UAM_ERR("Failed to update device-service payload [%d:%s]",
850 sql_ret, sqlite3_errmsg(database_handle));
851 error_code = UAM_ERROR_DB_FAILED;
855 UAM_DBG("Device-service payload info updated [%d] [%d] [%d] ",
856 device_number, service_number, payload_number);
864 int _uam_db_update_device_service_payload_info(
865 uam_ble_payload_s *payload, char *service_name)
868 int ret = UAM_ERROR_NONE;
869 db_service_info_t info;
870 int service_number = 0;
871 int device_number = 0;
872 int payload_number = 0;
874 retv_if(NULL == payload, UAM_ERROR_INVALID_PARAMETER);
875 retv_if(NULL == service_name, UAM_ERROR_INVALID_PARAMETER);
877 ret = _uam_db_get_service_info(service_name, &info);
878 if (UAM_ERROR_NONE != ret)
880 service_number = info.service_number;
882 ret = _uam_db_get_payload_device_number(payload, &device_number);
883 if (UAM_ERROR_NONE != ret)
886 ret = _uam_db_get_payload_number(payload, &payload_number);
887 if (UAM_ERROR_NONE != ret)
890 UAM_INFO("service: %d-%s device: %d payload: %d",
891 service_number, service_name,
892 device_number, payload_number);
894 ret = __uam_db_update_dev_svc_payload(device_number,
895 service_number, payload_number);
896 if (UAM_ERROR_NONE != ret)
899 UAM_DBG("payload-service info inserted [%d] [%d]", device_number,