Diff between 477832164c8d08521a2e112e4ce435d061bea32b and 72878d96feb732b5e7de6c22cc44728429e26346

Changed Files

File Additions Deletions Status
src/gatt-database.c +5 -0 modified

Full Patch

diff --git a/src/gatt-database.c b/src/gatt-database.c
index 783b692..ec584fc 100644
--- a/src/gatt-database.c
+++ b/src/gatt-database.c
@@ -3357,6 +3357,8 @@ void btd_gatt_database_att_connected(struct btd_gatt_database *database,
 void btd_gatt_database_att_disconnected(struct btd_gatt_database *database,
 						struct btd_device *device)
 {
+	struct bt_gatt_server *server = btd_device_get_gatt_server(device);
+	struct bt_att *att = bt_gatt_server_get_att(server);
 	struct device_state *state;
 	const bdaddr_t *addr;
 	uint8_t type;
@@ -3370,6 +3372,9 @@ void btd_gatt_database_att_disconnected(struct btd_gatt_database *database,
 	if (!state)
 		return;
 
+	if (state->disc_id)
+		bt_att_unregister_disconnect(att, state->disc_id);
+
 	att_disconnected(0, state);
 }