summaryrefslogtreecommitdiff
path: root/profiles
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-01-24 15:45:39 -0800
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-01-24 15:48:17 -0800
commit8aed9db4b13fa67babed7f2540d9b4d694f711ce (patch)
tree6cb95c42f8f6785133a43b47bef86075f9995055 /profiles
parent414c8650acfe871ea6ae860d7dca1b5fa9044b77 (diff)
downloadbluez-8aed9db4b13fa67babed7f2540d9b4d694f711ce.tar.gz
bap: Fix not removing endpoint if local PAC is unregistered
If local PAC is unregistered it would also notify via pac_removed callback which shall unregister the endpoint D-Bus object. Fixes: https://github.com/bluez/bluez/issues/457#issuecomment-1402178691
Diffstat (limited to 'profiles')
-rw-r--r--profiles/audio/bap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
index 8f2411768..5a50a2cc6 100644
--- a/profiles/audio/bap.c
+++ b/profiles/audio/bap.c
@@ -1049,12 +1049,12 @@ static void pac_added(struct bt_bap_pac *pac, void *user_data)
bt_bap_foreach_pac(data->bap, BT_BAP_SINK, pac_found, service);
}
-static bool ep_match_rpac(const void *data, const void *match_data)
+static bool ep_match_pac(const void *data, const void *match_data)
{
const struct bap_ep *ep = data;
const struct bt_bap_pac *pac = match_data;
- return ep->rpac == pac;
+ return ep->rpac == pac || ep->lpac == pac;
}
static void pac_removed(struct bt_bap_pac *pac, void *user_data)
@@ -1082,7 +1082,7 @@ static void pac_removed(struct bt_bap_pac *pac, void *user_data)
return;
}
- ep = queue_remove_if(queue, ep_match_rpac, pac);
+ ep = queue_remove_if(queue, ep_match_pac, pac);
if (!ep)
return;