Diff between ab0ff42d4396fbdeacf5a6adbfaa839e6025d93f and f426775b847779676d30bb596beb41f9992411b7

Changed Files

File Additions Deletions Status
src/shared/mgmt.c +28 -0 modified

Full Patch

diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c
index 2e6bb83..cf7fdcf 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;