aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--profiles/audio/bap.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
index 30049f0fb3..ff6d6d8813 100644
--- a/profiles/audio/bap.c
+++ b/profiles/audio/bap.c
@@ -879,9 +879,22 @@ static struct bap_setup *setup_new(struct bap_ep *ep)
static void setup_free(void *data)
{
struct bap_setup *setup = data;
+ DBusMessage *reply;
DBG("%p", setup);
+ if (setup->stream && setup->id) {
+ bt_bap_stream_cancel(setup->stream, setup->id);
+ setup->id = 0;
+ }
+
+ if (setup->msg) {
+ reply = btd_error_failed(setup->msg, "Canceled");
+ g_dbus_send_message(btd_get_dbus_connection(), reply);
+ dbus_message_unref(setup->msg);
+ setup->msg = NULL;
+ }
+
if (setup->ep)
queue_remove(setup->ep->setups, setup);