static gboolean hdp_get_add_prot_desc_list(const sdp_record_t *rec, guint16 *psm) { sdp_data_t *pdl, *p0, *p1; if (psm == NULL) return TRUE; pdl = sdp_data_get(rec, SDP_ATTR_ADD_PROTO_DESC_LIST); if (pdl == NULL || pdl->dtd != SDP_SEQ8) return FALSE; pdl = pdl->val.dataseq; if (pdl->dtd != SDP_SEQ8) return FALSE; p0 = pdl->val.dataseq; if (!get_prot_desc_entry(p0, L2CAP_UUID, psm)) return FALSE; p1 = p0->next; if (!get_prot_desc_entry(p1, MCAP_DATA_UUID, NULL)) return FALSE; return TRUE; }
static int get_add_prot_desc_list(const sdp_record_t *rec, uint16_t *psm) { sdp_data_t *pdl, *p0, *p1; if (!psm) return -1; pdl = sdp_data_get(rec, SDP_ATTR_ADD_PROTO_DESC_LIST); if (!pdl || pdl->dtd != SDP_SEQ8) return -1; pdl = pdl->val.dataseq; if (pdl->dtd != SDP_SEQ8) return -1; p0 = pdl->val.dataseq; if (get_prot_desc_entry(p0, L2CAP_UUID, psm) < 0) return -1; p1 = p0->next; if (get_prot_desc_entry(p1, MCAP_DATA_UUID, NULL) < 0) return -1; return 0; }
static gboolean hdp_get_prot_desc_list(const sdp_record_t *rec, guint16 *psm, guint16 *version) { sdp_data_t *pdl, *p0, *p1; if (psm == NULL && version == NULL) return TRUE; pdl = sdp_data_get(rec, SDP_ATTR_PROTO_DESC_LIST); if (pdl == NULL || !SDP_IS_SEQ(pdl->dtd)) return FALSE; p0 = pdl->val.dataseq; if (!get_prot_desc_entry(p0, L2CAP_UUID, psm)) return FALSE; p1 = p0->next; if (!get_prot_desc_entry(p1, MCAP_CTRL_UUID, version)) return FALSE; return TRUE; }
static int get_prot_desc_list(const sdp_record_t *rec, uint16_t *psm, uint16_t *version) { sdp_data_t *pdl, *p0, *p1; if (!psm && !version) return -1; pdl = sdp_data_get(rec, SDP_ATTR_PROTO_DESC_LIST); if (!pdl || !SDP_IS_SEQ(pdl->dtd)) return -1; p0 = pdl->val.dataseq; if (get_prot_desc_entry(p0, L2CAP_UUID, psm) < 0) return -1; p1 = p0->next; if (get_prot_desc_entry(p1, MCAP_CTRL_UUID, version) < 0) return -1; return 0; }
static gboolean mcap_get_prot_desc_list(const sdp_record_t *rec, guint16 *psm, guint16 *version) { DBG(""); sdp_data_t *pdl, *p0, *p1; if (!psm && !version) return TRUE; pdl = sdp_data_get(rec, SDP_ATTR_PROTO_DESC_LIST); if (pdl->dtd != SDP_SEQ8 && pdl->dtd != SDP_SEQ16 && pdl->dtd != SDP_SEQ32) return FALSE; p0 = pdl->val.dataseq; if (!get_prot_desc_entry(p0, L2CAP_UUID, psm)) return FALSE; p1 = p0->next; if (!get_prot_desc_entry(p1, MCAP_CTRL_UUID, version)) return FALSE; return TRUE; }