Set length for payload device uid
authorAbhay agarwal <ay.agarwal@samsung.com>
Thu, 26 Dec 2019 04:25:15 +0000 (09:55 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Mon, 30 Dec 2019 07:45:56 +0000 (16:45 +0900)
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
include/user-awareness-private.h
include/user-awareness.h
src/user-awareness-payload.c
test/uat-common.c
test/uat-payload.c

index 19ac1b9046e79c1de9d69e2145ee5ff7461d25fa..601a9d68412a7710fd42936538f1c3d15ffdc7ad 100644 (file)
@@ -299,8 +299,10 @@ typedef struct {
        char primary_key; /**< primary key for manufacturer data */
        char secondary_key; /**< secondary_key for manufacturer data */
        char device_icon; /**< device icon for manufacturer data */
+       int device_uid_len; /** device_uid length for manufaturer data*/
        char *device_uid; /**< device_uid for manufacturer data */
        char *bt_mac; /**< bt mac address of device */
+       char *user_data; /**< user data for manufacturer data */
        gboolean isadded; /**< Is the payload addition completed? */
 } ua_payload_info_s;
 
index 038e221b8c66413dfd25e880f3ba5f95c79dd114..bf80e28ccd25c9c1df2b86f21671f5a3850814a8 100644 (file)
@@ -94,7 +94,7 @@ extern "C" {
  * @brief Device's BLE payload DEVICE_UID length.
  * @since_tizen 5.5
  */
-#define UA_BLE_PAYLOAD_DEVICE_UID_LEN 17
+#define UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN 17
 
 /**
  * @ingroup CAPI_NETWORK_UA_MODULE
index e1972b92dc84d487fc31fd4f1cf18a5497471593..3650dfde0d8614ab0e2ee6fcb7c2b334804a8c8c 100644 (file)
@@ -153,19 +153,20 @@ int ua_payload_set_device_uid(
        UA_VALIDATE_INPUT_PARAMETER(device_uid);
        UA_PRINT_PAYLOAD_HANDLE(handle);
 
-       retv_if(device_uid_len != UA_BLE_PAYLOAD_DEVICE_UID_LEN, UA_ERROR_INVALID_PARAMETER);
+       retv_if(device_uid_len > UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN, UA_ERROR_INVALID_PARAMETER);
 
+       payload->device_uid_len = device_uid_len;
        g_free(payload->device_uid);
        payload->device_uid = NULL;
 
-       payload->device_uid = g_malloc0(UA_BLE_PAYLOAD_DEVICE_UID_LEN + 1);
+       payload->device_uid = g_malloc0(UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN + 1);
        if (payload->device_uid == NULL) {
                UA_ERR("g_malloc0 failed");
                _ua_free_ua_payload_info_s((gpointer)payload);
                return UA_ERROR_OUT_OF_MEMORY;
        }
 
-       memcpy(payload->device_uid, device_uid, UA_BLE_PAYLOAD_DEVICE_UID_LEN);
+       memcpy(payload->device_uid, device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN);
 
        FUNC_EXIT;
        return UA_ERROR_NONE;
@@ -181,6 +182,7 @@ void _ua_get_uam_payload_from_ua(uam_ble_payload_s *uam_payload,
                uam_payload->primary_key = 13;
                uam_payload->device_icon = 1;
                uam_payload->secondary_key = 1;
+               uam_payload->device_uid_len = 0;
                UA_DBG("(NULL == payload) return");
                return;
        }
@@ -188,9 +190,10 @@ void _ua_get_uam_payload_from_ua(uam_ble_payload_s *uam_payload,
        uam_payload->primary_key = payload->primary_key;
        uam_payload->device_icon = payload->device_icon;
        uam_payload->secondary_key = payload->secondary_key;
+       uam_payload->device_uid_len = payload->device_uid_len;
 
        if (payload->device_uid)
-               memcpy(uam_payload->device_uid, payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_LEN + 1);
+               memcpy(uam_payload->device_uid, payload->device_uid, payload->device_uid_len);
 
        if (payload->bt_mac)
                g_strlcpy(uam_payload->bt_mac, payload->bt_mac, UA_BT_MAC_MAX_LEN);
@@ -277,7 +280,7 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload)
        payload->device_icon = uam_payload->device_icon;
        payload->secondary_key = uam_payload->secondary_key;
 
-       payload->device_uid = g_memdup(uam_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_LEN + 1);
+       payload->device_uid = g_memdup(uam_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN + 1);
        if (!payload->device_uid) {
                UA_ERR("g_malloc0 failed");
                _ua_free_ua_payload_info_s(payload);
@@ -391,7 +394,7 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload)
        payload->device_icon = org_payload->device_icon;
        payload->secondary_key = org_payload->secondary_key;
 
-       payload->device_uid = g_memdup(org_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_LEN + 1);
+       payload->device_uid = g_memdup(org_payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN + 1);
        if (!payload->device_uid && org_payload->device_uid) {
                UA_ERR("g_malloc0 failed");
                _ua_free_ua_payload_info_s(payload);
@@ -498,7 +501,7 @@ int ua_payload_get_device_uid(
                goto done;
        }
 
-       *device_uid = g_memdup(payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_LEN);
+       *device_uid = g_memdup(payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN);
        if (*device_uid == NULL) {
                // LCOV_EXCL_START
                UA_ERR("g_memdup failed");
index 542ce2498f113e58139a7e0659cb67a7be5d0e9b..97b0c3da934796e8460a045105e630f9258663ed 100644 (file)
@@ -161,7 +161,7 @@ void uat_print_device_uid(const char *device_uid)
        if(!device_uid)
                goto done;
 
-       for (int i = 0; i < UA_BLE_PAYLOAD_DEVICE_UID_LEN; i++)
+       for (int i = 0; i < UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN; i++)
                fprintf(stdout, ANSI_COLOR_WHITE " %d" ANSI_COLOR_NORMAL, device_uid[i]);
 
 done:
index bef9e42261542e0dc8812dcf6a189f5cc6cdeb48..e55fc57c6c2cac100774bc761336a18bc1391a49 100644 (file)
@@ -33,6 +33,7 @@ ua_payload_h g_payload_h = NULL; /**< Payload handle */
 static char g_payload_primary_key[MENU_DATA_SIZE + 1] = {0,}; /**< payload primary_key for the selected device */
 static char g_payload_device_icon[MENU_DATA_SIZE + 1] = {0,}; /**< payload device_icon for the selected device */
 static char g_payload_secondary_key[MENU_DATA_SIZE + 1] = {0,}; /**< payload secondary_key for the selected device */
+static char g_payload_device_uid_len[MENU_DATA_SIZE + 1] = {0,}; /**< payload device_uid len for the selected device */
 static char g_payload_device_uid_str[MENU_DATA_SIZE + 1] = {0,}; /**< payload device_uid for the selected device */
 
 GSList *payload_list = NULL; /**< Payload List */
@@ -141,7 +142,7 @@ static int _scan_payload_device_uid_str(
        msg("Input 17 bytes device_uid, each byte is 0 to 255 value");
        memset(g_payload_device_uid_str, 0, MENU_DATA_SIZE + 1);
 
-       for (int i = 0; i < UA_BLE_PAYLOAD_DEVICE_UID_LEN; i++) {
+       for (int i = 0; i < UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN; i++) {
                ret = fscanf(stdin, "%d", &temp);
                if(!ret)
                        msg(" - fscanf ret: %d", ret);
@@ -214,11 +215,15 @@ static int run_ua_payload_set_device_uid(
        MManager *mm, struct menu_data *menu)
 {
        int ret = UA_ERROR_NONE;
+       int device_uid_len = 0;
 
        msg("ua_payload_set_device_uid");
 
+       if (strlen(g_payload_device_uid_len))
+               device_uid_len = (unsigned char)strtol(g_payload_device_uid_len, NULL, 10);
+
        ret = ua_payload_set_device_uid(g_payload_h,
-               UA_BLE_PAYLOAD_DEVICE_UID_LEN, g_payload_device_uid_str);
+               device_uid_len, g_payload_device_uid_str);
 
        msg(" - ua_payload_set_device_uid() ret: [0x%X] [%s]",
                        ret, uat_get_error_str(ret));
@@ -378,13 +383,15 @@ static struct menu_data menu_ua_payload_set_secondary_key[] = {
 };
 
 static struct menu_data menu_ua_payload_set_device_uid[] = {
-       { "1", "DEVICE_UID (Max. 17 bytes)",
+       { "1", "Device uid len (0 to 17)",
+               NULL, NULL, g_payload_device_uid_len },
+       { "2", "DEVICE_UID (Max. 17 bytes)",
 #ifdef SUPPORT_STRING_DEVICE_UID
                NULL, NULL, g_payload_device_uid_str },
 #else
                NULL, _scan_payload_device_uid_str, NULL },
 #endif
-       { "2", "run", NULL,
+       { "3", "run", NULL,
                run_ua_payload_set_device_uid, NULL },
        { NULL, NULL, },
 };