From 2d4c58a7600c96033be71344bbe63fa74df0a21d Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 5 Oct 2011 17:24:30 +0300 Subject: [PATCH] Fix not being able to register pdu handlers This happens when removing and adding again an adapter --- audio/avctp.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/audio/avctp.c b/audio/avctp.c index b8cb36e2a..89ef70c51 100644 --- a/audio/avctp.c +++ b/audio/avctp.c @@ -463,6 +463,7 @@ static gboolean session_cb(GIOChannel *chan, GIOCondition cond, handler = find_handler(handlers, avc->opcode); if (!handler) { + DBG("handler not found for 0x%02x", avc->opcode); avc->code = AVC_CTYPE_REJECTED; goto done; } @@ -824,14 +825,20 @@ void avctp_unregister(const bdaddr_t *src) if (servers) return; - if (passthrough_id) + if (passthrough_id) { avctp_unregister_pdu_handler(passthrough_id); + passthrough_id = 0; + } - if (unit_id) + if (unit_id) { avctp_unregister_pdu_handler(unit_id); + passthrough_id = 0; + } - if (subunit_id) - avctp_unregister_pdu_handler(unit_id); + if (subunit_id) { + avctp_unregister_pdu_handler(subunit_id); + subunit_id = 0; + } } int avctp_send_passthrough(struct avctp *session, uint8_t op) -- 2.47.3