You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.4 KiB
41 lines
1.4 KiB
From 28ddec8d6b829e002fa268c07b71e4c564ba9e16 Mon Sep 17 00:00:00 2001 |
|
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> |
|
Date: Thu, 11 Mar 2021 07:36:07 -0800 |
|
Subject: [PATCH] avdtp: Fix removing all remote SEPs when loading from cache |
|
|
|
If avdtp_discover is called after cache has been loaded it end up |
|
removing all remote SEPs as they have not been discovered yet. |
|
|
|
Fixes: https://github.com/bluez/bluez/issues/102 |
|
--- |
|
profiles/audio/avdtp.c | 16 ++++++++++++---- |
|
1 file changed, 12 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c |
|
index 088ca58b3..1d5871c62 100644 |
|
--- a/profiles/audio/avdtp.c |
|
+++ b/profiles/audio/avdtp.c |
|
@@ -3381,10 +3381,18 @@ int avdtp_discover(struct avdtp *session, avdtp_discover_cb_t cb, |
|
session->discover = g_new0(struct discover_callback, 1); |
|
|
|
if (session->seps) { |
|
- session->discover->cb = cb; |
|
- session->discover->user_data = user_data; |
|
- session->discover->id = g_idle_add(process_discover, session); |
|
- return 0; |
|
+ struct avdtp_remote_sep *sep = session->seps->data; |
|
+ |
|
+ /* Check that SEP have been discovered as it may be loaded from |
|
+ * cache. |
|
+ */ |
|
+ if (sep->discovered) { |
|
+ session->discover->cb = cb; |
|
+ session->discover->user_data = user_data; |
|
+ session->discover->id = g_idle_add(process_discover, |
|
+ session); |
|
+ return 0; |
|
+ } |
|
} |
|
|
|
err = send_request(session, FALSE, NULL, AVDTP_DISCOVER, NULL, 0); |
|
|
|
|