Implement the set mtu for LE device
[platform/core/connectivity/bluetooth-frwk.git] / bt-service-adaptation / services / bt-request-handler.c
index 7577fc7..42ed3dd 100644 (file)
@@ -2611,6 +2611,34 @@ int __bt_bluez_request(int function_name,
                }
                break;
        }
+       case BT_REQ_ATT_MTU: {
+               bluetooth_device_address_t address = { {0} };
+               unsigned int mtu;
+               char *addr;
+
+               sender = (char*)g_dbus_method_invocation_get_sender(context);
+
+               __bt_service_get_parameters(in_param1,
+                               &address, sizeof(bluetooth_device_address_t));
+               __bt_service_get_parameters(in_param2,
+                               &mtu, sizeof(unsigned int));
+               BT_DBG("BT_REQ_ATT_MTU: %d", mtu);
+               result = _bt_request_att_mtu(&address, mtu);
+               if (BLUETOOTH_ERROR_NONE == result) {
+                       addr = g_malloc0(BT_ADDRESS_STRING_SIZE);
+                       BT_INFO("GATT Client: Save Invocation data for BT_REQ_ATT_MTU [%s]", sender);
+
+                       _bt_convert_addr_type_to_string(addr, address.addr);
+
+                       /* Save the informations to invocation */
+                       _bt_save_invocation_context(context, result, sender,
+                                       function_name, (gpointer)addr);
+               } else {
+                       g_array_append_vals(*out_param1, &address,
+                                       sizeof(bluetooth_device_address_t));
+               }
+               break;
+       }
        case BT_SET_LE_STATIC_RANDOM_ADDRESS: {
                gboolean is_enable;