summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhay agarwal <ay.agarwal@samsung.com>2019-12-26 19:13:20 +0530
committerDoHyun Pyun <dh79.pyun@samsung.com>2019-12-30 16:45:56 +0900
commitc3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa (patch)
tree6a7ebe59b58965d0aaf456e81425cde7df3a6ef2
parentd03b76ec99e4af1af82e3156e4af3e018fa3ddd4 (diff)
downloaduser-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.tar.gz
user-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.tar.bz2
user-awareness-c3ee9bcbf12b883e6b91e5ed5255a5ee0c69e8aa.zip
Get payload device user data
Signed-off-by: Abhay agarwal <ay.agarwal@samsung.com>
-rw-r--r--include/user-awareness.h21
-rw-r--r--src/user-awareness-payload.c59
-rw-r--r--test/uat-payload.c12
3 files changed, 88 insertions, 4 deletions
diff --git a/include/user-awareness.h b/include/user-awareness.h
index bf80e28..d5ff9d4 100644
--- a/include/user-awareness.h
+++ b/include/user-awareness.h
@@ -3026,6 +3026,27 @@ int ua_payload_get_secondary_key(
/**
* @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Gets device's BLE payload user_data.
+ * @since_tizen 5.5
+ *
+ * @param[in] handle The payload handle.
+ * @param[out] user_data The BLE payload user_data.
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ */
+int ua_payload_get_user_data(
+ ua_payload_h handle,
+ char **user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
* @brief Gets device's BLE payload DEVICE_UID.
* @since_tizen 5.5
*
diff --git a/src/user-awareness-payload.c b/src/user-awareness-payload.c
index 3650dfd..6b82934 100644
--- a/src/user-awareness-payload.c
+++ b/src/user-awareness-payload.c
@@ -267,6 +267,7 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload)
{
FUNC_ENTRY;
ua_payload_info_s *payload = NULL;
+ int user_data_len = 0;
retv_if(NULL == uam_payload, NULL);
@@ -280,7 +281,8 @@ 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_MAX_LEN + 1);
+ payload->device_uid_len = uam_payload->device_uid_len;
+ payload->device_uid = g_memdup(uam_payload->device_uid, uam_payload->device_uid_len);
if (!payload->device_uid) {
UA_ERR("g_malloc0 failed");
_ua_free_ua_payload_info_s(payload);
@@ -294,6 +296,14 @@ ua_payload_info_s* _ua_get_payload_from_uam(uam_ble_payload_s *uam_payload)
return NULL;
}
+ user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - uam_payload->device_uid_len;
+ payload->user_data = g_memdup(uam_payload->user_data, user_data_len);
+ if (!payload->user_data) {
+ UA_ERR("g_malloc0 failed");
+ _ua_free_ua_payload_info_s(payload);
+ return NULL;
+ }
+
FUNC_EXIT;
return payload;
}
@@ -381,6 +391,7 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload)
{
FUNC_ENTRY;
ua_payload_info_s *payload = NULL;
+ int user_data_len = 0;
retv_if(NULL == org_payload, NULL);
@@ -394,7 +405,8 @@ 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_MAX_LEN + 1);
+ payload->device_uid_len = org_payload->device_uid_len;
+ payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len);
if (!payload->device_uid && org_payload->device_uid) {
UA_ERR("g_malloc0 failed");
_ua_free_ua_payload_info_s(payload);
@@ -408,6 +420,14 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload)
return NULL;
}
+ user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - org_payload->device_uid_len;
+ payload->user_data = g_memdup(org_payload->user_data, user_data_len);
+ if (!payload->user_data && org_payload->user_data) {
+ UA_ERR("g_malloc0 failed");
+ _ua_free_ua_payload_info_s(payload);
+ return NULL;
+ }
+
FUNC_EXIT;
return payload;
}
@@ -501,7 +521,8 @@ int ua_payload_get_device_uid(
goto done;
}
- *device_uid = g_memdup(payload->device_uid, UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN);
+ UA_DBG("payload(device_uid_len) [%d]", payload->device_uid_len);
+ *device_uid = g_memdup(payload->device_uid, payload->device_uid_len);
if (*device_uid == NULL) {
// LCOV_EXCL_START
UA_ERR("g_memdup failed");
@@ -537,3 +558,35 @@ done:
FUNC_EXIT;
return UA_ERROR_NONE;
}
+
+int ua_payload_get_user_data(
+ ua_payload_h handle,
+ char **user_data)
+{
+ FUNC_ENTRY;
+ ua_payload_info_s *payload = (ua_payload_info_s *)handle;
+ int user_data_len = 0;
+
+ UA_VALIDATE_INPUT_PARAMETER(handle);
+ UA_VALIDATE_INPUT_PARAMETER(user_data);
+ UA_PRINT_PAYLOAD_HANDLE(handle);
+
+ if (!payload || !payload->user_data) {
+ *user_data = NULL;
+ UA_DBG("payload(user_data) is not found");
+ goto done;
+ }
+
+ user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - payload->device_uid_len;
+ *user_data = g_memdup(payload->user_data, user_data_len);
+ if (*user_data == NULL) {
+ // LCOV_EXCL_START
+ UA_ERR("g_memdup failed");
+ return UA_ERROR_OUT_OF_MEMORY;
+ // LCOV_EXCL_START
+ }
+
+done:
+ FUNC_EXIT;
+ return UA_ERROR_NONE;
+}
diff --git a/test/uat-payload.c b/test/uat-payload.c
index e55fc57..e6067a1 100644
--- a/test/uat-payload.c
+++ b/test/uat-payload.c
@@ -138,11 +138,15 @@ static int _scan_payload_device_uid_str(
{
int ret = UA_ERROR_NONE;
int temp = 0;
+ int device_uid_len = 0;
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_MAX_LEN; i++) {
+ if (strlen(g_payload_device_uid_len))
+ device_uid_len = (unsigned char)strtol(g_payload_device_uid_len, NULL, 10);
+
+ for (int i = 0; i < device_uid_len; i++) {
ret = fscanf(stdin, "%d", &temp);
if(!ret)
msg(" - fscanf ret: %d", ret);
@@ -274,6 +278,7 @@ static bool __foreach_added_payload_cb(
char secondary_key = 0;
char *device_uid = NULL;
char device_icon = 0;
+ char *payload_user_data = NULL;
if (!payload_handle) {
msgr("payload_handle is NULL");
@@ -308,6 +313,11 @@ static bool __foreach_added_payload_cb(
if (UA_ERROR_NONE == ret)
msglr("Payload device icon : %d", device_icon);
+ ret = ua_payload_get_user_data(handle, &payload_user_data);
+ if (UA_ERROR_NONE == ret) {
+ msglr("Payload user data : %s", payload_user_data);
+ }
+
return true;
}