summaryrefslogtreecommitdiff
path: root/lib/bt/host/bluedroid/stack/sdp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2025-07-25 13:33:07 +1000
committerjacqueline <me@jacqueline.id.au>2025-07-25 13:33:07 +1000
commitc8e79a926620e48830778714cfe4b2ea2453fcaf (patch)
tree8c756e08e01b8e147cf72bec128026f46bd854c5 /lib/bt/host/bluedroid/stack/sdp
parent237136f3e93cb6b5be24670d7520adb17cc0fa36 (diff)
downloadtangara-fw-c8e79a926620e48830778714cfe4b2ea2453fcaf.tar.gz
Update forked idf components
Diffstat (limited to 'lib/bt/host/bluedroid/stack/sdp')
-rw-r--r--lib/bt/host/bluedroid/stack/sdp/sdp_api.c26
-rw-r--r--lib/bt/host/bluedroid/stack/sdp/sdp_db.c40
-rw-r--r--lib/bt/host/bluedroid/stack/sdp/sdp_discovery.c3
3 files changed, 47 insertions, 22 deletions
diff --git a/lib/bt/host/bluedroid/stack/sdp/sdp_api.c b/lib/bt/host/bluedroid/stack/sdp/sdp_api.c
index 0103e4de..9b477a1c 100644
--- a/lib/bt/host/bluedroid/stack/sdp/sdp_api.c
+++ b/lib/bt/host/bluedroid/stack/sdp/sdp_api.c
@@ -372,7 +372,7 @@ BOOLEAN SDP_FindServiceUUIDInRec(tSDP_DISC_REC *p_rec, tBT_UUID *p_uuid)
if (SDP_DISC_ATTR_TYPE(p_sattr->attr_len_type) == DATA_ELE_SEQ_DESC_TYPE) {
/* Look through data element sequence until no more UUIDs */
for (p_extra_sattr = p_sattr->attr_value.v.p_sub_attr; p_extra_sattr; p_extra_sattr = p_extra_sattr->p_next_attr) {
- /* Increment past this to see if the next attribut is UUID */
+ /* Increment past this to see if the next attribute is UUID */
if ((SDP_DISC_ATTR_TYPE(p_extra_sattr->attr_len_type) == UUID_DESC_TYPE)
/* only support 16 bits UUID for now */
&& (SDP_DISC_ATTR_LEN(p_extra_sattr->attr_len_type) == 2)) {
@@ -522,7 +522,7 @@ tSDP_DISC_REC *SDP_FindServiceInDb (tSDP_DISCOVERY_DB *p_db, UINT16 service_uuid
if (SDP_DISC_ATTR_TYPE(p_sattr->attr_len_type) == DATA_ELE_SEQ_DESC_TYPE) {
/* Look through data element sequence until no more UUIDs */
for (p_extra_sattr = p_sattr->attr_value.v.p_sub_attr; p_extra_sattr; p_extra_sattr = p_extra_sattr->p_next_attr) {
- /* Increment past this to see if the next attribut is UUID */
+ /* Increment past this to see if the next attribute is UUID */
if ((SDP_DISC_ATTR_TYPE(p_extra_sattr->attr_len_type) == UUID_DESC_TYPE)
&& (SDP_DISC_ATTR_LEN(p_extra_sattr->attr_len_type) == 2)
/* for a specific uuid, or any one */
@@ -768,6 +768,28 @@ BOOLEAN SDP_FindProtocolListElemInRec (tSDP_DISC_REC *p_rec, UINT16 layer_uuid,
return (FALSE);
}
+/*******************************************************************************
+**
+** Function SDP_FindProtocolListElem
+**
+** Description This function looks at the protocol list for a specific protocol
+** list element.
+**
+** Returns TRUE if found, FALSE if not
+** If found, the passed protocol list element is filled in.
+**
+*******************************************************************************/
+BOOLEAN SDP_FindProtocolListElem (tSDP_DISC_ATTR *p_protocol_list, UINT16 layer_uuid, tSDP_PROTOCOL_ELEM *p_elem)
+{
+#if SDP_CLIENT_ENABLED == TRUE
+ /* don't check the input protocol descriptor list id, this api may be use in additional protocol descriptor list */
+ if ((SDP_DISC_ATTR_TYPE(p_protocol_list->attr_len_type) == DATA_ELE_SEQ_DESC_TYPE)) {
+ return sdp_fill_proto_elem(p_protocol_list, layer_uuid, p_elem);
+ }
+#endif
+ /* If here, no match found */
+ return (FALSE);
+}
/*******************************************************************************
**
diff --git a/lib/bt/host/bluedroid/stack/sdp/sdp_db.c b/lib/bt/host/bluedroid/stack/sdp/sdp_db.c
index a9b3daa4..60dd04a6 100644
--- a/lib/bt/host/bluedroid/stack/sdp/sdp_db.c
+++ b/lib/bt/host/bluedroid/stack/sdp/sdp_db.c
@@ -276,7 +276,7 @@ static int sdp_compose_proto_list( UINT8 *p, UINT16 num_elem,
**
** Description This function is called to create a record in the database.
** This would be through the SDP database maintenance API. The
-** record is created empty, teh application should then call
+** record is created empty, the application should then call
** "add_attribute" to add the record's attributes.
**
** Returns Record handle if OK, else 0.
@@ -293,15 +293,15 @@ UINT32 SDP_CreateRecord (void)
/* First, check if there is a free record */
if (p_db->num_records < SDP_MAX_RECORDS) {
- p_rec =(tSDP_RECORD *)osi_malloc(sizeof(tSDP_RECORD));
- if (p_rec) {
- memset(p_rec, 0, sizeof(tSDP_RECORD));
- /* Save previous rec */
- if (p_db->num_records) {
- p_rec_prev = list_back(p_db->p_record_list);
- }
- /* Append new record */
- list_append(p_db->p_record_list, p_rec);
+ p_rec = (tSDP_RECORD *)osi_malloc(sizeof(tSDP_RECORD));
+ if (p_rec) {
+ memset(p_rec, 0, sizeof(tSDP_RECORD));
+ /* Save previous rec */
+ if (p_db->num_records) {
+ p_rec_prev = list_back(p_db->p_record_list);
+ }
+ /* Append new record */
+ list_append(p_db->p_record_list, p_rec);
/* We will use a handle of the first unreserved handle plus last record
** number + 1 */
@@ -321,10 +321,12 @@ UINT32 SDP_CreateRecord (void)
4, buf);
return (p_rec->record_handle);
- } else {
+ }
+ else {
SDP_TRACE_ERROR("SDP_CreateRecord fail, memory allocation failed\n");
- }
- } else {
+ }
+ }
+ else {
SDP_TRACE_ERROR("SDP_CreateRecord fail, exceed maximum records:%d\n", SDP_MAX_RECORDS);
}
#endif
@@ -354,17 +356,17 @@ BOOLEAN SDP_DeleteRecord (UINT32 handle)
if (handle == 0 || sdp_cb.server_db.num_records == 0) {
/* Delete all records in the database */
sdp_cb.server_db.num_records = 0;
- for(p_node = list_begin(sdp_cb.server_db.p_record_list); p_node; p_node = list_next(p_node)) {
- list_remove(sdp_cb.server_db.p_record_list, p_node);
- }
+ for (p_node = list_begin(sdp_cb.server_db.p_record_list); p_node; p_node = list_next(p_node)) {
+ list_remove(sdp_cb.server_db.p_record_list, p_node);
+ }
/* require new DI record to be created in SDP_SetLocalDiRecord */
sdp_cb.server_db.di_primary_handle = 0;
return (TRUE);
} else {
/* Find the record in the database */
- for(p_node = list_begin(sdp_cb.server_db.p_record_list); p_node; p_node = list_next(p_node)) {
- p_rec = list_node(p_node);
+ for (p_node = list_begin(sdp_cb.server_db.p_record_list); p_node; p_node = list_next(p_node)) {
+ p_rec = list_node(p_node);
if (p_rec->record_handle == handle) {
/* Found it. Shift everything up one */
list_remove(sdp_cb.server_db.p_record_list, p_rec);
@@ -374,7 +376,7 @@ BOOLEAN SDP_DeleteRecord (UINT32 handle)
SDP_TRACE_DEBUG("SDP_DeleteRecord ok, num_records:%d\n", sdp_cb.server_db.num_records);
/* if we're deleting the primary DI record, clear the */
/* value in the control block */
- if ( sdp_cb.server_db.di_primary_handle == handle ) {
+ if (sdp_cb.server_db.di_primary_handle == handle) {
sdp_cb.server_db.di_primary_handle = 0;
}
diff --git a/lib/bt/host/bluedroid/stack/sdp/sdp_discovery.c b/lib/bt/host/bluedroid/stack/sdp/sdp_discovery.c
index d63b164d..31ab11f4 100644
--- a/lib/bt/host/bluedroid/stack/sdp/sdp_discovery.c
+++ b/lib/bt/host/bluedroid/stack/sdp/sdp_discovery.c
@@ -453,7 +453,7 @@ static void process_service_attr_rsp (tCONN_CB *p_ccb, UINT8 *p_reply)
}
}
- /* Now, ask for the next handle. Re-use the buffer we just got. */
+ /* Now, ask for the next handle. Reuse the buffer we just got. */
if (p_ccb->cur_handle < p_ccb->num_handles) {
BT_HDR *p_msg = (BT_HDR *) osi_malloc(SDP_DATA_BUF_SIZE);
UINT8 *p;
@@ -669,6 +669,7 @@ static void process_service_search_attr_rsp (tCONN_CB *p_ccb, UINT8 *p_reply)
if ((type >> 3) != DATA_ELE_SEQ_DESC_TYPE) {
SDP_TRACE_WARNING ("SDP - Wrong type: 0x%02x in attr_rsp\n", type);
+ sdp_disconnect (p_ccb, SDP_ILLEGAL_PARAMETER);
return;
}
p = sdpu_get_len_from_type (p, type, &seq_len);