From 886553467c74f9cedf1e36f974098c9d2b020b83 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. Change-Id: I9cd77b61e7bfdd38ecd160edd0b9316d8285c7b0 Signed-off-by: Amit Purwar --- client/gatt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/client/gatt.c b/client/gatt.c index b83bea7..b640b6e 100755 --- 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.7.4