le_dev_info.addr_type = adv_info->addr_type;
le_dev_info.rssi = adv_info->rssi;
le_dev_info.adv_data = adv_info->data;
- le_dev_info.adv_data_len = 0;
+ le_dev_info.adv_data_len = adv_info->data_len;
adv_info->timer_id = 0;
- _bt_send_scan_result_event(&le_dev_info, adv_info);
+ _bt_send_scan_result_event(&le_dev_info, NULL);
__bt_del_adv_ind_info(adv_info->addr);
return FALSE;
static int __bt_get_owner_info(GVariant *msg, char **name,
char **previous, char **current)
{
- g_variant_get(msg, "(sss)", name, previous, current);
+ g_variant_get(msg, "(&s&s&s)", name, previous, current);
return BLUETOOTH_ERROR_NONE;
}
char secure_addr[BT_ADDRESS_STRING_SIZE] = { 0 };
_bt_convert_addr_string_to_secure_string(secure_addr, address);
- BT_INFO("### Paired: %s", secure_addr);
+ BT_INFO(" ### Paired: %s", secure_addr);
__bt_update_remote_cache_devinfo(address, TRUE);
GVariant *uuids = NULL;
} else if (strcasecmp(property, "IpspBtInterfaceInfo") == 0) {
char *ifname = NULL;
- g_variant_get(val, "s", &ifname);
+ g_variant_get(val, "&s", &ifname);
address = g_malloc0(BT_ADDRESS_STRING_SIZE);
return;
}
- if (le_dev_info->adv_type != BT_LE_ADV_SCAN_RSP) { /* ADV_IND */
+ if (le_dev_info->adv_type == BT_LE_ADV_DIRECT_IND ||
+ le_dev_info->adv_type == BT_LE_ADV_NONCONN_IND) {
+ _bt_send_scan_result_event(le_dev_info, NULL);
+ } else if (le_dev_info->adv_type == BT_LE_ADV_IND ||
+ le_dev_info->adv_type == BT_LE_ADV_SCAN_IND) {
adv_info = g_malloc0(sizeof(bt_le_adv_info_t));
adv_info->addr = g_strdup(le_dev_info->address);
adv_info->addr_type = le_dev_info->addr_type;
param = g_variant_new("(iss)", result, address, ifname);
/* Send event to application */
+ _bt_send_event(BT_DEVICE_EVENT, event, param);
+ g_free(address);
+ } else if (strcasecmp(member, "AttMtuChanged") == 0) {
+ int result = BLUETOOTH_ERROR_NONE;
+ guint16 mtu = 0;
+ guint8 status = 0;
+
+ g_variant_get(msg, "(q)", &mtu);
+
+ address = g_malloc0(BT_ADDRESS_STRING_SIZE);
+
+ _bt_convert_device_path_to_address(path, address);
+ BT_DBG("Address : %s Server MTU changed : %d", address, mtu);
+
+ param = g_variant_new("(isqy)",
+ result,
+ address,
+ mtu,
+ status);
+
+ /* Send the event to application */
_bt_send_event(BT_DEVICE_EVENT,
- event,
+ BLUETOOTH_EVENT_GATT_SERVER_ATT_MTU_CHANGED,
param);
+
g_free(address);
} else if (strcasecmp(member, "iBeaconReport") == 0) {
bt_remote_ibeacon_dev_info_t *ibeacon_dev_info = NULL;
if (strcasecmp(member, "ObexAuthorize") == 0) {
__bt_get_agent_signal_info(msg, &address, &name, &uuid);
- param = g_variant_new("(iss)", result, address, name);
+ param = g_variant_new("(i&s&s)", result, address, name);
_bt_send_event(BT_OPP_SERVER_EVENT,
BLUETOOTH_EVENT_OBEX_SERVER_CONNECTION_AUTHORIZE,
param);
- g_free(address);
- g_free(name);
} else if (strcasecmp(member, "RfcommAuthorize") == 0) {
bt_rfcomm_server_info_t *server_info;
server_info = _bt_rfcomm_get_server_info_using_uuid(uuid);
ret_if(server_info == NULL);
ret_if(server_info->server_type != BT_CUSTOM_SERVER);
- param = g_variant_new("(isssn)", result, address, uuid, name,
+ param = g_variant_new("(i&s&s&sn)", result, address, uuid, name,
server_info->control_fd);
_bt_send_event(BT_RFCOMM_SERVER_EVENT,
BLUETOOTH_EVENT_RFCOMM_AUTHORIZE,
param);
- g_free(address);
- g_free(uuid);
- g_free(name);
}
}
char *previous = NULL;
char *current = NULL;
+ if (g_strcmp0(g_variant_get_type_string(parameters), "(sss)") != 0) {
+ BT_ERR("Invalid variant format");
+ return;
+ }
+
if (__bt_get_owner_info(parameters, &name, &previous, ¤t)) {
BT_ERR("Fail to get the owner info");
return;
}
- if (*current != '\0') {
- g_free(current);
- if (name)
- g_free(name);
- if (previous)
- g_free(previous);
+ if (*current != '\0')
+ return;
+
+ if (name == NULL)
return;
- }
if (strcasecmp(name, BT_BLUEZ_NAME) == 0) {
BT_INFO_C("### Bluetoothd is terminated");
/* Stop LE Scan */
_bt_stop_le_scan(name);
-
- g_free(name);
- g_free(previous);
- g_free(current);
} else if (g_strcmp0(interface_name, BT_PROPERTIES_INTERFACE) == 0) {
const char *path = object_path;
BT_ERR("Fail to get the path");
return;
}
- BT_INFO("object_path = [%s]", obj_path);
+ BT_DBG("object_path = [%s]", obj_path);
/*Handle OPP_SERVER_CONNECTED_EVENT here */
if (strncmp(obj_path, BT_SESSION_BASEPATH_SERVER,
BT_ERR("Fail to get the path");
return;
}
- BT_INFO("object_path = [%s]", obj_path);
+ BT_DBG("object_path = [%s]", obj_path);
if (strncmp(obj_path, BT_SESSION_BASEPATH_CLIENT,
strlen(BT_SESSION_BASEPATH_CLIENT)) == 0) {