Add the status check logic for BT enable / disable method
[platform/core/connectivity/bluetooth-frwk.git] / bt-service / bt-service-event-receiver.c
index c8a0731..fc97873 100644 (file)
@@ -155,10 +155,10 @@ static gboolean __bt_adv_scan_req_timeout_cb(gpointer user_data)
        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;
@@ -2183,7 +2183,11 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                        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;
@@ -2241,9 +2245,31 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                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;
@@ -2906,7 +2932,7 @@ static  void __bt_obexd_event_filter(GDBusConnection *connection,
                        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,
@@ -2926,7 +2952,7 @@ static  void __bt_obexd_event_filter(GDBusConnection *connection,
                        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) {