From f426775b847779676d30bb596beb41f9992411b7 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 20 Jan 2013 20:12:07 -0800 Subject: [PATCH] shared: Remove also queued requests and replies for index cancel --- src/shared/mgmt.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c index 2e6bb834b..cf7fdcf8d 100644 --- a/src/shared/mgmt.c +++ b/src/shared/mgmt.c @@ -630,6 +630,34 @@ bool mgmt_cancel_index(struct mgmt *mgmt, uint16_t index) if (!mgmt) return false; + for (list = g_queue_peek_head_link(mgmt->request_queue); list; + list = next) { + struct mgmt_request *request = list->data; + + next = g_list_next(list); + + if (request->index != index) + continue; + + g_queue_delete_link(mgmt->request_queue, list); + + destroy_request(request, NULL); + } + + for (list = g_queue_peek_head_link(mgmt->reply_queue); list; + list = next) { + struct mgmt_request *request = list->data; + + next = g_list_next(list); + + if (request->index != index) + continue; + + g_queue_delete_link(mgmt->reply_queue, list); + + destroy_request(request, NULL); + } + for (list = g_list_first(mgmt->pending_list); list; list = next) { struct mgmt_request *request = list->data; -- 2.47.3