Hi Luiz, On 08/09/16 13:38, Luiz Augusto von Dentz wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > If the profile accepts connections it should also be notified when ATT > disconnects so it can cleanup properly. > --- > src/device.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/src/device.c b/src/device.c > index 9586022..eda873f 100644 > --- a/src/device.c > +++ b/src/device.c > @@ -4563,6 +4563,18 @@ static void attio_disconnected(gpointer data, gpointer user_data) > attio->dcfunc(attio->user_data); > } > > +static void disconnect_gatt_service(gpointer data, gpointer user_data) > +{ > + struct btd_service *service = data; > + struct btd_profile *profile = btd_service_get_profile(service); > + > + /* Ignore if profile cannot accept connections */ > + if (!profile->accept) > + return; What if the profile has connect and not accept? > + > + btd_service_disconnect(service); > +} > + > static void att_disconnected_cb(int err, void *user_data) > { > struct btd_device *device = user_data; > @@ -4575,6 +4587,7 @@ static void att_disconnected_cb(int err, void *user_data) > DBG("%s (%d)", strerror(err), err); > > g_slist_foreach(device->attios, attio_disconnected, NULL); > + g_slist_foreach(device->services, disconnect_gatt_service, NULL); > > btd_gatt_client_disconnected(device->client_dbus); > > -- Felipe
Attachment:
0x92698E6A.asc
Description: application/pgp-keys