Modify PBAP SDP record.
PATCH 1/1 Modify PBAP SDP record.
From: Zhu Lan <[email protected]>
Fix to pass PTS case TC_SDAS_BV_03_I(since PTS3.2 update2). The code tried to append the UINT type value to the supported respositories. However, the wrong function sdp_seq_alloc() was used. This function adds 2 redundant bytes (SDP_SEQ8 as 0x35, seq) ahead of 0x08, so that latest PTS IOPT will fail. According to spec, PBAP attributes should report 0x08 0x01 or 0x08 0x03 right after 0x0314. The correct function to use is sdp_data_alloc(), with clean 0x08 0x01 appended as SDP_ATTR_SUPPORTED_REPOSITORIES.
--- tools/sdptool.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-)
tools/sdptool.c +2 -7
@@ -1829,7 +1829,7 @@ static int add_pbap(sdp_session_t *session, svc_info_t *si)sdp_record_t record;uint8_t chan = si->channel ? si->channel :19 ;sdp_data_t *channel; -uint8_t formats[] = {0x03 }; +uint8_t formats[] = {0x01 };void *dtds[sizeof (formats)], *values[sizeof (formats)];int i;uint8_t dtd =SDP_UINT8 ;
@@ -1869,12 +1869,7 @@ static int add_pbap(sdp_session_t *session, svc_info_t *si) aproto =sdp_list_append (0 , apseq);sdp_set_access_protos (&record, aproto); - -for (i =0 ; i <sizeof (formats); i++) { - dtds[i] = &dtd; - values[i] = &formats[i]; - } - sflist =sdp_seq_alloc (dtds, values,sizeof (formats)); + sflist =sdp_data_alloc (dtd,formats);sdp_attr_add (&record,SDP_ATTR_SUPPORTED_REPOSITORIES , sflist);sdp_set_info_attr (&record,"OBEX Phonebook Access Server" ,0 ,0 );
Signature · 1 line
1.6.2.3
Marcel Holtmann
maintainerHi Jaikumar,
Quoted 9 lines
Fix to pass PTS case
TC_SDAS_BV_03_I(since PTS3.2 update2). The code tried to append the UINT type value to the supported respositories. However, the wrong functionsdp_seq_alloc()was used. This function adds 2 redundant bytes (SDP_SEQ8as0x35, seq) ahead of0x08, so that latest PTS IOPT will fail. According to spec, PBAP attributes should report0x080x01or0x080x03right after0x0314. The correct function to use issdp_data_alloc(), with clean0x080x01appended asSDP_ATTR_SUPPORTED_REPOSITORIES.
Quoted 3 lines
--- tools/sdptool.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-)
can I get a version of this patch that applies cleanly when using git am please.
Regards
Marcel
Hi Marcel,
Quoted 15 lines · Marcel Holtmann
Hi Jaikumar,
Quoted 9 lines
Fix to pass PTS case
TC_SDAS_BV_03_I(since PTS3.2 update2). The code tried to append the UINT type value to the supported respositories. However, the wrong functionsdp_seq_alloc()was used. This function adds 2 redundant bytes (SDP_SEQ8as0x35, seq) ahead of0x08, so that latest PTS IOPT will fail. According to spec, PBAP attributes should report0x080x01or0x080x03right after0x0314. The correct function to use issdp_data_alloc(), with clean0x080x01appended asSDP_ATTR_SUPPORTED_REPOSITORIES.Quoted 3 lines
--- tools/sdptool.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-)
Quoted 2 lines
can I get a version of this patch that applies cleanly when using git am please.
Attached.
Thanks
Quoted 8 lines
Regards
Marcel
From d002cc2fdea61b836709bcf7735679e0018d9826 Mon Sep 17 00:00:00 2001
From: Zhu Lan <[email protected]>
Date: Mon, 3 Aug 2009 17:19:39 +0800
Subject: [PATCH] Modify PBAP SDP record.
Fix to pass PTS case TC_SDAS_BV_03_I(since PTS3.2 update2). The code tried to append the UINT type value to the supported respositories. However, the wrong function sdp_seq_alloc() was used. This function adds 2 redundant bytes (SDP_SEQ8 as 0x35, seq) ahead of 0x08, so that latest PTS IOPT will fail. According to spec, PBAP attributes should report 0x08 0x01 or 0x08 0x03 right after 0x0314. The correct function to use is sdp_data_alloc(), with clean 0x08 0x01 appended as SDP_ATTR_SUPPORTED_REPOSITORIES.
--- tools/sdptool.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-)
tools/sdptool.c +2 -7
@@ -1829,7 +1829,7 @@ static int add_pbap(sdp_session_t *session, svc_info_t *si)sdp_record_t record;uint8_t chan = si->channel ? si->channel :19 ;sdp_data_t *channel; -uint8_t formats[] = {0x03 }; +uint8_t formats[] = {0x01 };void *dtds[sizeof (formats)], *values[sizeof (formats)];unsigned int i;uint8_t dtd =SDP_UINT8 ;
@@ -1869,12 +1869,7 @@ static int add_pbap(sdp_session_t *session, svc_info_t *si) aproto =sdp_list_append (0 , apseq);sdp_set_access_protos (&record, aproto); - -for (i =0 ; i <sizeof (formats); i++) { - dtds[i] = &dtd; - values[i] = &formats[i]; - } - sflist =sdp_seq_alloc (dtds, values,sizeof (formats)); + sflist =sdp_data_alloc (dtd,formats);sdp_attr_add (&record,SDP_ATTR_SUPPORTED_REPOSITORIES , sflist);sdp_set_info_attr (&record,"OBEX Phonebook Access Server" ,0 ,0 );
Signature · 1 line
1.6.2.3
Marcel Holtmann
maintainerHi Jaikumar,
Quoted 15 lines
> Fix to pass PTS case
TC_SDAS_BV_03_I(since PTS3.2 update2). > The code tried to append the UINT type value to the supported
> respositories. However, the wrong functionsdp_seq_alloc()> was used. This function adds 2 redundant bytes (SDP_SEQ8as >0x35, seq) ahead of0x08, so that latest PTS IOPT will fail. > According to spec, PBAP attributes should report0x080x01> or0x080x03right after0x0314. The correct function to use > issdp_data_alloc(), with clean0x080x01appended as >SDP_ATTR_SUPPORTED_REPOSITORIES.
> ---
>tools/sdptool.c| 9 ++-------
> 1 files changed, 2 insertions(+), 7 deletions(-)
Quoted 5 lines
can I get a version of this patch that applies cleanly when using git am
please.Attached.
make[2]: Entering directory `/data/devel/bluez/tools'
CC sdptool.o
gcc1: warnings being treated as errors sdptool.c: In function ‘add_pbap’:
sdptool.c:1834: error: unused variable ‘i’ sdptool.c:1833: error: unused variable ‘values’ sdptool.c:1833: error: unused variable ‘dtds’
I thought that I make myself clear that every patch has to compile without any compiler warnings. What is this here? We hack around as we like and don't bother? Use freaking --enable-maintainer-mode or set the same compiler options BlueZ uses upstream.
Patch pushed and also fixed now.
Regards
Marcel