diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2005-12-14 10:11:26 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2005-12-14 10:11:26 +0000 |
commit | aa8d087a052ab9c54dde1b0ddaf3a47494ef899a (patch) | |
tree | b3dd4b238c1ea2b134c036ac369ccae3b9abf182 | |
parent | e23d63311f8cbbb2fb978f7a70598d785de2d83f (diff) |
Add support for additional access protocols
-rw-r--r-- | include/sdp_lib.h | 7 | ||||
-rw-r--r-- | src/sdp.c | 22 |
2 files changed, 26 insertions, 3 deletions
diff --git a/include/sdp_lib.h b/include/sdp_lib.h index a45f36ef..7f22451e 100644 --- a/include/sdp_lib.h +++ b/include/sdp_lib.h @@ -176,6 +176,11 @@ static inline int sdp_set_browse_groups(sdp_record_t *rec, sdp_list_t *seq) int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *proto); /* + * Set the additional access protocols of the record to those specified in proto + */ +int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *proto); + +/* * Get protocol port (i.e. PSM for L2CAP, Channel for RFCOMM) */ int sdp_get_proto_port(const sdp_list_t *list, int proto); @@ -457,7 +462,7 @@ int sdp_get_access_protos(const sdp_record_t *rec, sdp_list_t **protos); /* * Get the additional access protocols from the service record */ -int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **pap); +int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **protos); /* * Extract the list of browse groups to which the service belongs. @@ -1812,13 +1812,31 @@ static sdp_data_t *access_proto_to_dataseq(sdp_record_t *rec, sdp_list_t *proto) int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *ap) { const sdp_list_t *p; - sdp_data_t *protos = 0; + sdp_data_t *protos = NULL; for (p = ap; p; p = p->next) { - sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *)p->data); + sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *) p->data); protos = sdp_seq_append(protos, seq); } + sdp_attr_add(rec, SDP_ATTR_PROTO_DESC_LIST, protos); + + return 0; +} + +int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *ap) +{ + const sdp_list_t *p; + sdp_data_t *protos = NULL; + + for (p = ap; p; p = p->next) { + sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *) p->data); + protos = sdp_seq_append(protos, seq); + } + + sdp_attr_add(rec, SDP_ATTR_ADD_PROTO_DESC_LIST, + protos ? sdp_data_alloc(SDP_SEQ8, protos) : NULL); + return 0; } |