#define PXP_LINK_LOSS_SVC_UUID "1803"
#define PXP_TX_POWER_SVC_UUID "1804"
+#define BT_ADDRESS_REGEX_STRING "^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$"
/**
* @internal
* @brief Bluetooth callback.
*/
void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char *addr_str);
+gboolean _bt_validate_device_address(const char *addr_str);
+
void _handle_gatt_client_read_completed_event(int result, bt_gatt_resp_data_t *resp);
void _handle_gatt_client_write_completed_event(int result, bt_gatt_resp_data_t *resp);
return BT_ERROR_OUT_OF_MEMORY; /* LCOV_EXCL_LINE */
}
+gboolean _bt_utf8_validate(const char *name)
+{
+ gunichar2 *u16;
+ glong items_written = 0;
+
+ if (FALSE == g_utf8_validate(name, -1, NULL))
+ return FALSE;
+
+ u16 = g_utf8_to_utf16(name, -1, NULL, &items_written, NULL);
+ if (u16 == NULL)
+ return FALSE;
+
+ g_free(u16);
+ if (items_written != g_utf8_strlen(name, -1))
+ return FALSE;
+
+ return TRUE;
+}
+
+gboolean _bt_validate_device_address(const char *addr_str)
+{
+
+ if (!addr_str) {
+ BT_INFO("NULL address");
+ return TRUE;
+ }
+
+ if (_bt_utf8_validate(addr_str) == FALSE) {
+ BT_ERR("Srting UTF-8 validation failed!");
+ return FALSE;
+ }
+
+ return g_regex_match_simple(BT_ADDRESS_REGEX_STRING,
+ addr_str, G_REGEX_OPTIMIZE, 0);
+}
+
void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char *addr_str)
{
char *ptr1, *ptr2, *ptr3, *ptr4, *ptr5;
return;
}
+ BT_INFO("CCCD Noticfication ENABLED [%d]", notif_info->notification);
cb(notif_info->notification, server_handle, char_handle, user_data_cfm);
#else
bt_gatt_char_notify_change_t *value_change = param->param_data;
BT_VALIDATE_GATT_HANDLE(characteristic);
+ BT_INFO("Device Address [%s]", device_address);
+ if (!_bt_validate_device_address(device_address))
+ return BT_ERROR_INVALID_PARAMETER;
+
_bt_convert_address_to_hex(&addr_hex, device_address); /* LCOV_EXCL_START */
#ifdef TIZEN_FEATURE_GATT_RELAY