From 17c8980ad31c6c77c35124cf8d9e3a3c3c8c732a Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 6 Feb 2018 08:01:19 -0200 Subject: [PATCH] client: Fix not cleaning up notify pipe If remote unsubscribe, disconnects or the daemon closes the socket the io shall be destroyed properly otherwise it will prevent new subscriptions. --- client/gatt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/client/gatt.c b/client/gatt.c index b83bea729..b640b6eb9 100644 --- a/client/gatt.c +++ b/client/gatt.c @@ -679,11 +679,17 @@ static bool pipe_hup(struct io *io, void *user_data) struct chrc *chrc = user_data; if (chrc) { - bt_shell_printf("Attribute %s Write pipe closed\n", chrc->path); - if (chrc->write_io) { + bt_shell_printf("Attribute %s %s pipe closed\n", chrc->path, + io == chrc->write_io ? "Write" : "Notify"); + + if (io == chrc->write_io) { io_destroy(chrc->write_io); chrc->write_io = NULL; + } else { + io_destroy(chrc->notify_io); + chrc->notify_io = NULL; } + return false; } -- 2.47.3