From d7bb2abed626a979037a042c02b9a4027c6eb943 Mon Sep 17 00:00:00 2001 From: Daniel Beer Date: Sat, 26 Oct 2024 09:21:41 +1300 Subject: [PATCH] source: clean up outstanding AVDTP requests if the stream goes away If the stream goes IDLE while we have an outstanding request, connect_id stays non-zero and is never cleared via a completion callback. As a consequence, the profile on this device will never be connected successfully again until BlueZ restarts. --- profiles/audio/source.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/profiles/audio/source.c b/profiles/audio/source.c index 9fac352c8..db777e86d 100644 --- a/profiles/audio/source.c +++ b/profiles/audio/source.c @@ -134,6 +134,11 @@ static void stream_state_changed(struct avdtp_stream *stream, case AVDTP_STATE_IDLE: btd_service_disconnecting_complete(source->service, 0); + if (source->connect_id > 0) { + a2dp_cancel(source->connect_id); + source->connect_id = 0; + } + if (source->disconnect_id > 0) { a2dp_cancel(source->disconnect_id); source->disconnect_id = 0; -- 2.47.3