From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH BlueZ 3/4] android/arvrcp: Fix not parsing SDP record correctly Date: Thu, 6 Mar 2014 15:03:22 +0200 Message-Id: <1394111003-2396-3-git-send-email-luiz.dentz@gmail.com> In-Reply-To: <1394111003-2396-1-git-send-email-luiz.dentz@gmail.com> References: <1394111003-2396-1-git-send-email-luiz.dentz@gmail.com> Sender: linux-bluetooth-owner@vger.kernel.org List-ID: From: Luiz Augusto von Dentz --- android/avrcp.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/android/avrcp.c b/android/avrcp.c index d5eb31d..ce636c0 100644 --- a/android/avrcp.c +++ b/android/avrcp.c @@ -25,6 +25,7 @@ #include #endif +#include #include #include #include @@ -68,7 +69,7 @@ struct avrcp_request { struct avrcp_device { bdaddr_t dst; uint16_t version; - uint16_t features; + int features; struct avrcp *session; GIOChannel *io; GQueue *queue; @@ -817,15 +818,19 @@ static void search_cb(sdp_list_t *recs, int err, gpointer data) for (list = recs; list; list = list->next) { sdp_record_t *rec = list->data; - sdp_data_t *data; + sdp_list_t *l; + sdp_profile_desc_t *desc; - data = sdp_data_get(rec, SDP_ATTR_VERSION); - if (data) - dev->version = data->val.uint16; + if (sdp_get_profile_descs(rec, &l) < 0) + continue; - data = sdp_data_get(rec, SDP_ATTR_SUPPORTED_FEATURES); - if (data) - dev->features = data->val.uint16; + desc = l->data; + dev->version = desc->version; + + sdp_get_int_attr(rec, SDP_ATTR_SUPPORTED_FEATURES, + &dev->features); + sdp_list_free(l, free); + break; } if (dev->io) { -- 1.8.5.3