static sdp_data_t *proto_seq_find(sdp_list_t *proto_list) { sdp_list_t *list; uuid_t proto; sdp_uuid16_create(&proto, ATT_UUID); for (list = proto_list; list; list = list->next) { sdp_list_t *p; for (p = list->data; p; p = p->next) { sdp_data_t *seq = p->data; if (seq && seq->dtd == SDP_UUID16 && sdp_uuid16_cmp(&proto, &seq->val.uuid) == 0) return seq->next; } } return NULL; }
static int get_remote_profile_version(sdp_record_t *rec) { uuid_t uuid; sdp_list_t *profiles; sdp_profile_desc_t *desc; int ver = 0; sdp_uuid16_create(&uuid, HANDSFREE_PROFILE_ID); sdp_get_profile_descs(rec, &profiles); if (profiles == NULL) goto done; desc = profiles->data; if (sdp_uuid16_cmp(&desc->uuid, &uuid) == 0) ver = desc->version; sdp_list_free(profiles, free); done: return ver; }