summaryrefslogtreecommitdiff
path: root/android/gatt.c
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2015-03-11 14:30:10 +0100
committerSzymon Janc <szymon.janc@tieto.com>2015-03-12 15:48:22 +0100
commitd95746a9f699f89545fd7f91ae15188c56303c6e (patch)
treeaaf8d9415ddd98af9c7e456563b3b97c8ba2d8c6 /android/gatt.c
parent183c07ca92aae0da45c47e60d7a96c181494c523 (diff)
downloadbluez-d95746a9f699f89545fd7f91ae15188c56303c6e.tar.gz
android/gatt: Add suport for server MTU changed callback
When MTU is exchange notification is send with updated MTU. For BR/EDR notification is always send after connection.
Diffstat (limited to 'android/gatt.c')
-rw-r--r--android/gatt.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/android/gatt.c b/android/gatt.c
index 8f3e575b3..4da959fea 100644
--- a/android/gatt.c
+++ b/android/gatt.c
@@ -956,6 +956,20 @@ static void notify_client_mtu_change(struct app_connection *conn, bool success)
HAL_EV_GATT_CLIENT_CONFIGURE_MTU, sizeof(ev), &ev);
}
+static void notify_server_mtu(struct app_connection *conn)
+{
+ struct hal_ev_gatt_server_mtu_changed ev;
+ size_t mtu;
+
+ g_attrib_get_buffer(conn->device->attrib, &mtu);
+
+ ev.conn_id = conn->id;
+ ev.mtu = mtu;
+
+ ipc_send_notif(hal_ipc, HAL_SERVICE_ID_GATT,
+ HAL_EV_GATT_SERVER_MTU_CHANGED, sizeof(ev), &ev);
+}
+
static void notify_mtu_change(void *data, void *user_data)
{
struct gatt_device *device = user_data;
@@ -969,6 +983,8 @@ static void notify_mtu_change(void *data, void *user_data)
notify_client_mtu_change(conn, true);
break;
case GATT_SERVER:
+ notify_server_mtu(conn);
+ break;
default:
break;
}