diff options
Diffstat (limited to 'lib/sdp.c')
-rw-r--r-- | lib/sdp.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -1956,19 +1956,23 @@ static sdp_data_t *access_proto_to_dataseq(sdp_record_t *rec, sdp_list_t *proto) for (i = 0, p = proto; p; p = p->next, i++) { sdp_list_t *elt = (sdp_list_t *)p->data; sdp_data_t *s; + uuid_t *uuid = NULL; int pslen = 0; for (; elt && pslen < sizeof(dtds); elt = elt->next, pslen++) { sdp_data_t *d = (sdp_data_t *)elt->data; dtds[pslen] = &d->dtd; switch (d->dtd) { case SDP_UUID16: - values[pslen] = &((uuid_t *)d)->value.uuid16; + uuid = (uuid_t *) d; + values[pslen] = &uuid->value.uuid16; break; case SDP_UUID32: - values[pslen] = &((uuid_t *)d)->value.uuid32; + uuid = (uuid_t *) d; + values[pslen] = &uuid->value.uuid32; break; case SDP_UUID128: - values[pslen] = &((uuid_t *)d)->value.uuid128; + uuid = (uuid_t *) d; + values[pslen] = &uuid->value.uuid128; break; case SDP_UINT8: values[pslen] = &d->val.uint8; @@ -1988,6 +1992,8 @@ static sdp_data_t *access_proto_to_dataseq(sdp_record_t *rec, sdp_list_t *proto) if (s) { seqDTDs[i] = &s->dtd; seqs[i] = s; + if (uuid) + sdp_pattern_add_uuid(rec, uuid); } } seq = sdp_seq_alloc(seqDTDs, seqs, seqlen); |